sequelize(1) 중복확인 [Op.or]

Creating the dots·2021년 11월 27일
0

project-3-ShallWeHealth

목록 보기
8/26

reference

구현할 내용

  • 중복하기 버튼을 눌렀을때, 클라이언트에서 axios로 https://.../user/duplication으로 요청을 보낸다.
  • 중복확인 버튼을 눌렀을때, 데이터베이스에 해당 이메일 또는 닉네임이 존재하는지 확인한다.
  • 이메일과 닉네임은 req.query로 전달받는다.

새롭게 배운 내용

이메일 중복확인과 닉네임 중복확인으로 구분하지 않고, 하나로 작성하기 위해 sql문에서 OR를 사용했던 것처럼 sequelize의 where 조건문에 쓰려고 구글링해 다음과 같은 내용을 알게되었다.

  • sequelize에서 Op를 사용해 where 조건문에 or를 사용할 수 있다.
  • Op를 사용하면 굉장히 다양한 조건(레퍼런스 링크 참고)을 편하게 사용할 수 있을 것 같다.

작성한 내용

const { Op } = require("sequelize");
const { user } = require("../../models");
module.exports = async (req, res) => {
  try {
    const data = await user.findOne({
      where: {
        [Op.or]: [{ nickname: req.query.nickname }, { email: req.query.email }],
      },
    });
    if (data === null) {
      return res.status(200).json({ data: false });
    } else {
      return res.status(404).json({ data: true });
    }
  } catch (err) {
    throw err;
  }
};
profile
어제보다 나은 오늘을 만드는 중

0개의 댓글