6. Node 가계부 만들기 [ 유저 기능 (회원 가입) repository 코드 작성 ] - 3

2022. 5. 28. 17:59프로젝트/가계부 - 제작 JavaScript

https://crispypotato.tistory.com/213 router, service 연결 포스트에 나오듯이 회원가입 부분에서

DB를 요청하는 부분은 중복 아이디 확인, 회원가입이다.

 

그러므로 아이디 찾기과 회원가입 기능에 대한 repository를 작성 할 것이다.

 

1. DB 연결

https://crispypotato.tistory.com/210 지난 번 생성 /models/user.js 파일을 require 한다. 

// routes/users/users.repository.js

const Users = require('../../models/user')

 

2. 아이디 찾기 repository 

 

id 값을 받아 DB에 select를 한다.  

sequlize를 이용하여 실제 sql문을 작성 하지 않고 findOne메소드로 간단하게 데이터를 찾을 수 있다.

 

해당 유저가 있으면 true를 retrun 하고 없다면 false를 return 하는 코드를 작성한다.

// routes/users/users.repository.js

const Users = require('../../models/user')

const IdFind = async (id) => {
  const user = await Users.findOne({ where: { id } })
  if (user) {
    return true
  } else {
    return false
  }
}

 

3. 회원가입 repository 

 

users.service.js에서 전달 받은 값 id, password, salt으로 계정을 생성한다.

// routes/users/users.repository.js

const UserCreate = async (data) => {
  try {
    const { id, password, salt } = data
    await Users.create({
      id,
      password,
      salt
    })
    return true
  } catch (E) {
    return false
  }
}

 

4. 최종 users.repository.js

const Users = require('../../models/user')

const IdFind = async (id) => {
  const user = await Users.findOne({ where: { id } })
  if (user) {
    return true
  } else {
    return false
  }
}

const UserCreate = async (data) => {
  try {
    const { id, password, salt } = data
    await Users.create({
      id,
      password,
      salt
    })
    return true
  } catch (E) {
    return false
  }
}

module.exports = { IdFind, UserCreate }
728x90
반응형