본문 바로가기

백엔드/노드

[node.js] express.json() 간략 정리

반응형

express.json()

보통 app.use(express.json()) 형태로 쓰이는 미들웨어는 Express 애플리케이션에서 JSON 형태의 요청(request) body를 파싱(parse)하기 위해 사용되는 미들웨어(middleware)입니다. 따라서,  Express 애플리케이션에서 JSON 형태의 요청 body를 받아야 한다면 이 코드를 사용해야 합니다.(사용하지 않을 경우 인간이 알기 어려운 용어로 전달되거나 예기치 못한 에러가 발생할 수 있습니다.)

예를 들어, 클라이언트에서 서버로 JSON 형태의 데이터를 전송할 때, Content-Type 헤더를 application/json으로 설정하고 요청 body에 JSON 데이터를 포함하여 전송합니다. 이때, app.use(express.json())을 사용하면 서버에서 이 JSON 데이터를 파싱하여 JavaScript 객체로 사용할 수 있습니다.

다만, 만약에 요청 body가 JSON이 아니라 form 데이터나 멀티파트 데이터 등 다른 형태의 데이터라면 express.urlencoded()나 multer 등의 미들웨어를 사용해야 합니다.


** 사용 예시

const express = require('express');
const app = express();

// JSON 형태의 요청 body를 파싱하기 위해 express.json() 미들웨어를 사용합니다.
app.use(express.json());

// POST /users 요청을 처리하는 라우터 핸들러입니다.
app.post('/users', (req, res) => {
  // 요청 body에서 JSON 데이터를 추출하여 사용할 수 있습니다.
  const { username, email } = req.body;
  // 추출한 데이터를 이용해 새로운 사용자를 생성하고, 응답으로 결과를 전송합니다.
  //createUser 함수는 외부에서 따로 정의되어 호출되는 함수입니다(사용자 정의).
  createUser(username, email).then(result => {
    res.send(result);
  }).catch(err => {
    res.status(500).send({ message: 'Error creating user' });
  });
});

// Express 애플리케이션을 3000번 포트에서 실행합니다.
app.listen(3000, () => {
  console.log('Server listening on port 3000');
});
반응형