-
express 에러 처리 하기자료 정리 2020. 6. 28. 14:34
간단하게 express 로 서버 예제를 만들어 보았습니다.
post로 요청 오는 데이터 id 값을 타입에 따라
type이 number일 경우에는 상태로 201 과 id값을 내보내고
string일 경우에는 상태가 400이고 error message를 내보냅니다.
그 외의 타입일 경우에는 서버에러로 간주하여 500 상태와 error message를 내보내는 코드입니다.1. 각 라우터에서 error를 처리하는 방법
const app = require("express")(); const logger = require("morgan"); const bodyParser = require("body-parser"); app.use(bodyParser()) app.use(logger("dev")) app.post("/user", (req, res, next) => { const { id } = req.body; let err = ""; console.log(typeof id) if(typeof id === "number"){ console.log("??") return res.status(201).json( { id } ) }else if( typeof id === "string"){ return res.status(400).json({ status : 400, message : "type error"}) } return res.status(500).json({ status : 500, message : "server error"}) }) app.listen(3000, () => { console.log("3000 포트 서버 작동 중") })
2. error를 처리하는 미들웨어를 만드는 방법const app = require("express")(); const logger = require("morgan"); const bodyParser = require("body-parser"); app.use(bodyParser()) app.use(logger("dev")) app.post("/user", (req, res, next) => { const { id } = req.body; let err = ""; console.log(typeof id) if(typeof id === "number"){ console.log("??") return res.status(201).json( { id } ) }else if( typeof id === "string"){ console.log("??") err = new Error("type err"); err.status = 400; next(err); } err = new Error("server error"); return next(err); }) app.use((req, res, next) => { const error = new Error("Not Found"); error.status = 404; next(error); }) app.use((err, req, res, next) => { console.log("ERR : ", err); res.status(err.status || 500); res.json({ err : { status : err.status, message : err.message } }) }) app.listen(3000, () => { console.log("3000 포트 서버 작동 중") })
'자료 정리' 카테고리의 다른 글
React-Native 와 React의 차이 (0) 2020.05.12 Cookie와 Storage 이란? (0) 2020.05.11 CSS 기초 부터 (0) 2020.04.07 axios 와 fetch의 다른 점 (0) 2020.02.29 Sequelize 1 : N 관계 설정, Cascade 적용 (0) 2020.02.26