nodeJS - body-parser, 정적파일, 글로벌변수 만들기, 에러 상태코드 핸들링

문한성·2023년 3월 22일
0

nodeJS

목록 보기
3/3
post-thumbnail

body-parser

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의 사용 방법은 다음과 같습니다.

  1. body-parser 라이브러리를 설치합니다.

    npm install body-parser
  2. 사용 예시

    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/파일이름

으로 들어가면 정적파일을 열어볼수 있다.

Global View Variable

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로 설정한다.

404, 500 error handling

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일 경우 미들웨어를 이용해서 에러페이지를 클라이언트에게 보여주게 한다.

profile
기록하고 공유하려고 노력하는 DevOps 엔지니어

0개의 댓글