4. Node 가계부 만들기 [ 유저 기능 (회원 가입) 구현 ] - 1

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

생성되는 url

/user/:id  [ GET ]  : 사용중인 아이디가 있는지 확인

/user/signup  [ POST ]  : 회원 가입 

 

1. /routes/users 폴더 생성

routes/users

2. 필요 파일 /routes/users에 생성

생성 파일

 

- 파일 설명

users.route.js : 경로 설정

users.service.js : 실제 비지니스 코드 작성

users.validators.js : 프론트에서 넘어온 값을 유효성 검사

users.repository.js : DB에 데이터를 요청 하고 Service에 데이터 전달

 * 사용하는 DB가 변경이 되더라도 service에서는 resistor에서같은 함수를 요청하면 같은 값을 받을 수 있다. *

 

3. users.route.js 코드 작성 (service 연결)

//users.route.js
const express = require('express')
const router = express.Router()
const { CheckUserId, CreateUser } = require('./users.service')

router.get('/:id', CheckUserId)
router.post('/signup', CreateUser)

module.exports = router

 

4. users.service.js 코드 작성 (기본 연결을 위해 실제 코드는 [ https://crispypotato.tistory.com/216 ] )

//users.service.js
const httpError = require('http-errors')
const { Send } = require('../../lib/lib')

const CheckUserId = async (req, res, next) => {}

const CreateUser = async (req, res, next) => {}

module.exports = { CheckUserId, CreateUser }

 

5. app.js에서 user.route.js연결

const express = require('express')
const logger = require('morgan')
const compression = require('compression')
const httpError = require('http-errors')

const { Error } = require('./lib/lib')
const { sequelize } = require('./models/index')

//users.route.js require
const userRouter = require('./routes/users/users.route')

if (process.env.NODE_ENV === 'local') {
  sequelize
    .sync()
    .then(() => {
      console.log('성공')
    })
    .catch((err) => {
      console.log('실패')
      console.log(err)
    })
}

const app = express()

app.use(compression())
app.use(logger('dev'))
app.use(express.json())

// user url routing 설정
app.use('/user', userRouter)

app.use(() => {
  throw httpError(404)
})

app.use(Error)

app.listen(3000, () => {
  console.log('server start!')
})
728x90
반응형