morgan, bodyParser, cookieParser

김무연·2023년 12월 15일

Backend

목록 보기
37/49

morgan

morgan 사용시 아래와 같이 요청을 보냈을 때, 어떻게 응답했는지 알 수 있다. 즉 요청과 응답을 기록하는 라이브러리이다.

  • 로그의 자세한 정도 선택 가능(dev, tiny, short, common, combined)
  • 예시) GET / 200 51.267 ms – 1539
  • 순서대로 HTTP요청 요청주소 상태코드 응답속도 – 응답바이트
  • 개발환경에서는 dev, 배포환경에서는 combined를 애용함.
app.use(morgan('combined'));

morgan의 인자를 dev로 두면 위와 같이 나오고 combined로 두면 조금 더 자세히 나온다.

cookieParser

요청 헤더의 쿠키를 해석해주는 미들웨어

  • parseCookies 함수와 기능 비슷
  • req.cookies 안에 쿠키들이 들어있음

실제 쿠키 옵션들을 넣을 수 있음

  • expires, domain, httpOnly, maxAge, path, secure, sameSite 등
  • 지울 때는 clearCookie로(expires와 maxAge를 제외한 옵션들이 일치해야 함)
app.use(cookieParser())

app.get('/', (req, res, next) => {
  res.cookie('name', encodeURIComponent(name), {
    expires: new Date(),
    httpOnly: true,
    path: '/'
  })
  res.clearCookie('name', encodeURIComponent(name), {
    httpOnly: true,
    path: '/'
  })
  res.send('hello express11');
})

위 처럼 쿠키를 손 쉽게 셋팅이 가능하다.

  • 비밀 키로 쿠키 뒤에 서명을 붙여 내 서버가 만든 쿠키임을 검증할 수 있음
app.use(cookieParser('mumunodejs'))

app.get('/', (req, res, next) => {
  req.signedCookies;
  res.send('hello express11');
})

cookieParser의 인자에 암호화 하고 싶은 것을 넣는다면 req.signedCookies로 가능하다

bodyParser

요청의 본문을 해석해주는 미들웨어

  • 폼 데이터나 AJAX 요청의 데이터 처리
  • json 미들웨어는 요청 본문이 json인 경우 해석, urlencoded 미들웨어는 폼 요청 해석
  • put이나 patch, post 요청 시에 req.body에 프런트에서 온 데이터를 넣어줌
app.use(express.json())
app.use(express.urlencoded({ extended: true })) // form data를 파싱해주는 것

req.body.변수

위 처럼 쉽게 body의 내용을 빼 올수 있다.

bodyParser에는 raw, text등이 있는데 현재는 잘 쓰지 않는다

profile
Notion에 정리된 공부한 글을 옮겨오는 중입니다... (진행중)

0개의 댓글