[항해99] 38일차 회원가입 API
IT/Bootcamp 항해992021. 7. 14. 23:00
항해 99
38일차:
코로나때문에 불안하니깐 아침에 헬스장은 안가기로헀다. 대신 그시간에 뛰기로했는데, 7시30분부터 햇빛엄청나게쌔고, 엄청 더웠다.
근데 코로나때문에 길에 학생들은 안보여서 뛰기는좋았던것같다.
근데 체력이 문제인건지 아니면 뛰는 운동이 엄청나게 힘든건지 어제 하루 뛰고 하루종일 정신을 못차린것같다.
나빼고 백앤드 분들은 3시까지 하셧던데, 중간에 나는 의자에서 기절했다...
어저께는 중간점검으로 글과 코멘트 부분을 합쳐봤는데 잘돌아갓다. 오늘과내일은 로그인과 인증부분만하면될것같다.
1) 회원가입 API (및 아이디 ,닉네임 중복체크)
const express = require("express")
const { User } = require("../models/index")
const router = express.Router()
const accountIdCheck = false // 가입시 아디이중복확인을 햇는지 확인
const nicknameCheck = false // 가입시 닉네임중복확인을 햇는지 확인
//회원가입
router.route('/')
.post(async (req, res) => {
//만약에 아이디와 닉네임 중복확인을 모두 했다면, 회원 crate
if (accountIdCheck == true && nicknameCheck == true) {
await Ad.create(req.body)
return res.status(201)
} return
//중복확인을 하나라도 하지않았다면 에러
res.status(400).send({ errorMessage: " 아이디 혹은 닉네임 중복확인이 필요합니다. " })
})
.get(async (req, res) => {
// 아이디 값과 닉네임값이 있으면 쿼리에서 가져옴.
const { accountId } = req.query
const { nickname } = req.query
// 아이디 중복확인 버튼을 누루면, 아이디를 db에서 찾아본다.
//존재한다면 isExsit 가false 로 넣고 클아이언트에 준다.
if (accountId) {
//console.log(" accound Id :", req.query.accountId)
const accountExist = await User.findOne({ where: { accountId: req.query.accountId } })
if (accountExist) {
const isExist = true
res.status(200).send({
isExist
})
return
}
//만약 존재하지않는다면 if문은거치지않고 일로와서 isExist true를반환, accoundIDcheck은 중복확인을햇다는의미로 true로바꿔준다
const isExist = false
accountIdCheck = true
res.status(200).send({ isExist })
return
// nickname검사는 위와같은로직
} else if (nickname) {
//console.log(" nickname:", req.query.nickname)
const nicknameExist = await User.findOne({ where: { nickname: req.query.nickname } })
if (nicknameExist) {
const isExsit = true
res.status(200).send({
isExsit
})
return
}
const isExist = false
nicknameCheck = true
res.status(200).send({ isExist })
}
})
2) 3항 연산자?
conditional (ternary) operator
// syntax : condition ? true: false
그러면 , 밑에서 category가 존해한다면 ? await Ad.findAll({where: (category: req.query.cateogry}})가 실행되고
존재하지않는다면 await Ad.findAll()부분이 실행된다.
router.route('/')
.get(async (req, res) => {
const ads = req.query.category ?
await Ad.findAll({ where: { category: req.query.category }}) : await Ad.findAll()
return res.status(200).json(ads)
})
3) 미숙한부분
예외처리, refactoring부분 , security부분
4)
https://sequelize.org/master/manual/eager-loading.html
반응형
'IT > Bootcamp 항해99' 카테고리의 다른 글
[항해99] 40일 & 41일차 클론코딩 (3) | 2021.07.18 |
---|---|
[항해99] 39일차 (0) | 2021.07.15 |
[항해99] 37일차 백앤드와 프론트 협업 (0) | 2021.07.13 |
[항해99] 36일차 API 짜기 (0) | 2021.07.13 |
[항해99] 35일차 expresss (0) | 2021.07.11 |
댓글()