42일차 TIL 210504 express

1.express ?

  • Node.js 환경에서 웹 어플리케이션 혹은 api를 제작하기 위해 사용되는 프레임워크
  • 미들웨어를 붙이기 쉽다.
  • 자체 라우터를 제공한다.

2. 자주쓰이는 미들웨어

  • 미들웨어는 다음 태스크 수행이 가능하다.
  • 모든 코드를 실행
  • 요청 및 응답 오브젝트에 대한 변경을 실행
  • 요청-응답 주기를 종료
  • 스택 내의 그 다음 미들웨어를 호출

image

  • next 함수를 호출하면 앱 내의 그 다음 미들웨어 함수가 호출된다.
  • 현재의 미들웨어 함수가 요청-응답 주기를 종료하지 않는 경우에는 next() 해서 그 다음 미들 웨어 함수에 제어를 전달해야 한다. 그렇지 않으면 해당 요청은 정지된채로 방치된다.
  • body-parser 미들웨어 : body(payload)를 받을때 쉽게 받을 수 있다.
const bodyParser = require('body-parser')
const jsonParser = bodyParser.json()

// 생략
app.post('/api/users', jsonParser, function (req, res) {
  // req.body에는 JSON의 형태로 payload가 담겨져 있습니다.
})
  • cors 미들웨어 : 순수 Node.js 코드로 cors 헤더를 붙이려면, 응답 객체의 writehead 메소드 등을 이용해 일일이 Access-contril-allow-* 헤더에 정의 해줬어야만 했지만 익스프레스는 간편하다.
const cors = require('cors')

// 생략
app.use(cors()) // 모든 요청에 대해 CORS 허용

Updated: