Skip to content

Latest commit

 

History

History
44 lines (38 loc) · 2.44 KB

220804_Nodejs.md

File metadata and controls

44 lines (38 loc) · 2.44 KB

항해99 8기 4주차 <Node.js 숙련> TIL_20220804

주특기 숙련 주차 팀 과제

Q1) 오류(에러) 처리 미들웨어

  • node.js는 싱글 스레드이기 때문에, 에러 처리에 민감해야 함
const express = require('express');
const app = express();
app.set('port', process.env.PORT || 3000);
app.use((req, res, next) => { 
   console.log("모든 요청에서 실행"); 
   next(); 
   }, (req, res, next) => { 
       throw new Error('에러가 났음') 
   }
)

에러

  • 위의 예시처럼 express 자체로 에러처리를 할 경우, 브라우저에 그대로 노출이 되어 보안상 위협을 받게되므로 반드시 에러 처리는 커스텀 에러 처리 미들웨어를 해줘야 함.
  • 에러 처리 미들웨어를 만들기 위해서는 모든 매개변수를 사용하지 않더라도 매개변수가 err, req, res, next로 반드시 4개가 존재해야함.
// 에러 처리 미들웨어
app.use((err, req, res, next) => {
console.log(err);
res.send('에러났지만 나만 볼 수 있다');
});
  • 위와 같이 에러 처리 미들웨어를 작성하면 브라우저에서는 '에러났지만 나만 볼 수 있다' 메세지만 확인 할 수 있고, 콘솔에서는 개발자가 에러를 확인할 수 있음.

  • JS는 위에서부터 아래로 순서대로 실행되므로 에러 처리 미들웨어를 마지막에 작성.

  1. 공통 미들웨어: 모든 라우트에서 사용
  2. 범위가 좁은 라우트: path variable을 사용
  3. 범위가 넓은 라우트: query String을 사용
  4. 에러 처리 미들웨어

Q2) env 처리하기