본문 바로가기

기타/Express.js

express 미들웨어 만들기, body-parser, cors 사용하기

728x90

미들웨어란 기능을 애플리케이션에 제공하는 소프트웨어입니다.

오늘은 express에서 미들웨어를 사용하는 방법에 대해 알아보고

express에서 제공하는 body-parser와 cors 미들웨어를 사용해 보도록 하겠습니다.

express의 미들웨어는 app.HTTP메서드("미들웨어 함수가 적용되는 경로", 미들웨어 함수)로 이루어져 있습니다.

app.use, app.get, app.post를 사용하는 경우가 많습니다.

 

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

app.get('/', function (req, res) {
  res.send('Hello balmostory!');
});

app.listen(3000);

 

위의 코드를 실행하면 페이지에 제대로 응답되었습니다.

app.get(...) 안에 있는 미들웨어 함수가 '/'에서 기능을 수행한 것입니다.

 

모든 path에 대해서 실행되는 미들웨어는 어떻게 만들까요?

변수에 함수를 저장한 후 그것을 app.use()를 사용해 미들웨어로 등록해 주면 어떤 path에서 접근해도 작동합니다.

 

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

var balmo = function (req, res, next) {
    console.log('hi balmo');
    next();
  };
  
app.use(balmo);

app.get('/', function (req, res) {
  res.send('Hello World!');
});

app.listen(3000);

두 가지 path에서 모두 hi balmo라는 코드가 실행되었습니다.

다음으로 진행하기 위해서는 반드시 next()를 사용해 주셔야 합니다.

next가 없으면 다음 미들웨어로 넘어갈 수 없습니다.

express는 자주 사용하는 기능에 대해 미리 미들웨어를 만들어 놓았습니다.

가장 많이 사용되는 것은 body-parser라는 미들웨어인데요.

사용방법에 대해 알아보도록 하겠습니다.

bodyparser는 클라이언트가 서버에 보낸 데이터를 파싱 하여 사용하기 쉽게 해주는 미들웨어입니다.

bodyparse가 없는 상태에서 클라이언트가 보낸 정보를 받는 것은 매우 귀찮은 일입니다.

이런 정보를 서버에 보냈을 때 

아래와 같이 bodyparser가 없다면 데이터에 접근하는 것이 힘듭니다.

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


app.post('/', function (req, res) {
    console.log(req)
});

app.listen(3000);

 

bodyparser를 사용하면 req.body를 통해 데이터를 가져올 수 있습니다.

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

var bodyParser = require("body-parser")

app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())

app.post('/', function (req, res) {
    console.log(req.body)
});

app.listen(3000);

 

 

body-parser와 더불어 cors도 자주 사용됩니다.

cors 오류는 제도적인 이유로 자주 발생합니다.

var cors = require('cors')

app.use(cors)

이것을 추가하면 해결 가능합니다.

 

감사합니다 ㅎㅎ

728x90

'기타 > Express.js' 카테고리의 다른 글

socket io namespace room(1)  (2) 2020.12.13
express socket.io 기본 사용법(2)  (0) 2020.12.11
express socket.io 기본 사용법(1)  (0) 2020.12.10
express 오류 처리 미들웨어  (0) 2020.11.26