body-parser
는 Node.js의 미들웨어(middleware) 중 하나로, HTTP 요청의 본문(body)을 파싱(parse)하고 추출(extract)하는 역할을 합니다.
Node.js에서 HTTP 요청은 데이터를 전송할 때 본문(body)에 포함하여 전송됩니다. 예를 들어, HTML 폼(form)에서 사용자가 입력한 데이터는 HTTP 요청의 본문으로 전송됩니다.
body-parser
는 이러한 HTTP 요청의 본문을 파싱하여 JavaScript 객체로 변환해주는 역할을 합니다. 이를 통해 Node.js 애플리케이션에서 쉽게 HTTP 요청의 데이터를 사용할 수 있습니다.
body-parser
는 다양한 타입의 데이터를 파싱할 수 있습니다. 예를 들어, JSON 데이터, URL-encoded 데이터, Raw 데이터 등을 파싱할 수 있습니다.
body-parser
의 사용 방법은 다음과 같습니다.
body-parser
라이브러리를 설치합니다.
npm install body-parser
사용 예시
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
// parse application/json
app.use(bodyParser.json());
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }));
// handle POST request
app.post('/', function(req, res) {
console.log(req.body); //json 데이터 받아오기
res.send('Got a POST request');
});
app.listen(3000, function() {
console.log('Server started on port 3000');
});
express프레임워크에서 정적파일 사용
const express = require('express');
const app = express();
app.use('/uploads', express.static('uploads')); // /uploads는 request요청을 받는 경로, express.static('uploads')는 정적파일 폴더 이름
app.listen(3000, function() {
console.log('Server started on port 3000');
});
로컬 서버를 실행 시킨후
http://localhost:3000/uploads/파일이름
으로 들어가면 정적파일을 열어볼수 있다.
express에서 어디서든 사용가능한 미들웨어
const express = require('express');
const app = express();
app.use( (req, res, next) => {
app.locals.isLogin = true;
next();
});
app.listen(3000, function() {
console.log('Server started on port 3000');
});
app이 실행할 때 isLogin이란 값을 true로 설정한다.
express에서 에러를 핸들링 하는 방법
const express = require('express');
const app = express();
// 404
app.use( ( req , res, _ ) => {
res.status(404).render('common/404.html')
});
// 500
app.use( (req, res, _ ) => {
res.status(500).render('common/500.html')
});
app.listen(3000, function() {
console.log('Server started on port 3000');
});
응답 상태코드가 404 나 500일 경우 미들웨어를 이용해서 에러페이지를 클라이언트에게 보여주게 한다.