3. Node 가계부 만들기 [ 데이터 / Error 전송 포맷 설정 함수 생성, http-errors 사용, Error 핸들러 ]
2022. 5. 23. 12:47ㆍ프로젝트/가계부 - 제작 JavaScript
* 에러코드 생성를 직접 만들어서 사용하기도 하지만 간편한 http-errors 라이브러리가 있다.
http-errors에서 기본 제공되는 error message 를 사용 할 예정이다. *
1. 데이터 / Error 전송 포맷 설정 함수 생성
1-1. lib/lib.js 생성
1-2. lib/lib.js 코드 작성
//에러
const Error = (err, req, res, next) => {
res.status(err.statusCode).json({
code: err.statusCode,
result: false,
msg: err.message,
data: ''
})
}
//전송 포멧
const Send = (res, data) => {
res.status(200).json({
code: 200,
result: true,
msg: '',
data
})
}
module.exports = { Error, Send }
2. Error 핸들러 생성
2-1. Express 내부에서 발생하는 404 에러처리
방법
요청을 잘못 된 경로로 시도 할 때 내부 404에러를 에러 형식을 맞춰 다시 에러처리 한다.
app.use(() => {
throw httpError(404)
})
2-2. 에러 처리는 미들웨어에서 가장 밑에서 최종으로 처리 한다.
방법
lib/lib.js에서 만든 Error 함수를 사용한다.
const { Error } = require('./lib/lib')
app.use(Error)
2-3. 결과 app.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')
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())
app.use(() => {
throw httpError(404)
})
app.use(Error)
app.listen(3000, () => {
console.log('server start!')
})
728x90
반응형
'프로젝트 > 가계부 - 제작 JavaScript' 카테고리의 다른 글
5. Node 가계부 만들기 [ 유저 기능 (회원 가입) 필요 함수 구현 ] - 2 (0) | 2022.05.28 |
---|---|
4. Node 가계부 만들기 [ 유저 기능 (회원 가입) 구현 ] - 1 (0) | 2022.05.28 |
2. Node 가계부 만들기 [ .env 파일 사용, Mysql Sequlize 연결, Mysql 동기화 ] (0) | 2022.05.23 |
1. Node 가계부 만들기 [ 필요 파일/라이브러리 생성, 설치] (0) | 2022.05.22 |
0. Node 프로젝트 가계부 만들기 소개 (0) | 2022.05.22 |