Express 요청 데이터 파싱: 내장 메서드와 body-parser 미들웨어

Express 요청 데이터 파싱: 내장 메서드와 body-parser 미들웨어

Express에서 클라이언트로부터 전송된 데이터를 쉽게 파싱하고 처리하기 위해서는 데이터 파싱 미들웨어의 사용이 필수적입니다. 예전에는 body-parser 라이브러리가 이 역할을 담당했으나, Express 4.16.0 이상부터는 express.json()express.urlencoded() 내장 미들웨어로 대체되었습니다.

body-parser 미들웨어 사용 예시

Express가 내장 메서드를 제공하지만, 구버전의 Express를 사용하거나 특별한 경우 body-parser 미들웨어의 사용이 필요할 수 있습니다. 사용 방법은 다음과 같습니다.

const bodyParser = require('body-parser');
const express = require('express');
const app = express();

// 'public' 폴더 안의 파일들을 정적 파일로 제공하기 위한 설정입니다.
app.use(express.static('public'));

// body-parser 미들웨어를 사용하여 JSON 형식의 요청 본문을 파싱합니다.
app.use(bodyParser.json());  

// body-parser 미들웨어를 사용하여 URL 인코딩된 요청 본문을 파싱합니다. 
// 'extended: true' 옵션은 중첩된 객체를 허용합니다.
app.use(bodyParser.urlencoded({ extended: true }));

app.post('/submit', (req, res) => {
    // 파싱된 요청 본문 데이터를 콘솔에 출력합니다.
    console.log(req.body);
    // 클라이언트에 성공 메시지를 응답합니다.
    res.send("body-parser 미들웨어 사용 성공");
});

const port = 3000;
// 지정된 포트에서 서버를 시작하고, 서버가 시작되면 콘솔에 메시지를 출력합니다.
app.listen(port, () => console.log(`App listening on port ${port}`));

위 예제는 body-parser를 사용하여 JSON 형식의 데이터와 URL 인코딩된 데이터를 파싱하는 방법을 보여줍니다.

Express 내장 메서드를 사용한 요청 데이터 파싱

Express 애플리케이션에서 JSON 형식의 데이터나 URL 인코딩된 데이터를 파싱하려면 다음과 같이 내장 메서드를 사용합니다.

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

// JSON 형식의 데이터 파싱
app.use(express.json());

// URL 인코딩된 데이터 파싱
app.use(express.urlencoded({ extended: true }));

app.post('/submit', (req, res) => {
    // 이제 req.body를 통해 전송된 데이터에 접근할 수 있습니다.
    console.log(req.body);
    res.send("데이터 파싱 성공");
});

const port = 3000;
app.listen(port, () => console.log(`App listening on port ${port}`));

이 방식을 사용하면 추가적인 라이브러리 설치 없이도 요청 본문의 데이터를 손쉽게 파싱할 수 있습니다. express.json()은 JSON 형식의 입력을 파싱하고, express.urlencoded()는 URL 인코딩된 데이터를 파싱합니다.

Express 내장 메서드를 사용한 요청 데이터 파싱 예제코드 실행 화면

결론

Express 4.16.0 이상에서는 body-parser 라이브러리 없이도 요청 데이터를 효과적으로 파싱할 수 있습니다. 그러나 구버전의 Express를 사용하거나 특별한 상황에서 body-parser 미들웨어의 사용이 필요할 수 있으므로, 상황에 따라 적절한 파싱 방법을 선택하는 것이 중요합니다.

Express에서 데이터 파싱은 애플리케이션의 기능 구현에 있어 기초적이면서도 중요한 부분입니다. 내장 메서드 또는 body-parser 미들웨어를 통해 요청 데이터를 쉽고 효과적으로 처리할 수 있습니다.

자세한 정보는 Express 공식 문서를 참조하세요.

관련 이전 게시글

이 글이 도움이 되셨다면 공유 부탁 드립니다.

위로 스크롤