미들들웨어(Middleware)는 요청(Request)에 필요한 기능을 더하거나, 문제를 발견하고 밖으로 걷어내는 역할을 한다.

자주발생

  1. POST 요청 등에 포함된 body(payload)를 구조화할 때(쉽게 얻어내고자 할 때)
  2. 모든 요청/응답에 CORS 헤더를 붙여야 할 때
  3. 모든 요청에 대해 url이나 메서드를 확인할 때
  4. 요청 헤더에 사용자 인증 정보가 담겨있는지 확인할 때

case 1

let body = [];
request
  .on("data", (chunk) => {
    body.push(chunk);
  })
  .on("end", () => {
    body = Buffer.concat(body).toString();
  });

미들웨어 사용

Express v4.16.0 부터 Express 내장 미들웨어인 express.json()을 사용

const jsonParser = express.json();

// 생략
app.post("/api/users", jsonParser, function (req, res) {});

express.json() 미들웨어 사용에 에러 -> express.json([options])/https://expressjs.com/ko/4x/api.html#express.json

strict - 배열 및 개체 수락만 활성화 또는 비활성화합니다. 비활성화되면 JSON.parse가 허용하는 모든 것을 허용합니다.

const jsonParser = express.json({ strict: false });

// 생략
app.post("/api/users", jsonParser, function (req, res) {});

case 2


댓글남기기