express route사용하기 + body-parse

이동환·2020년 11월 17일
2

TIL

목록 보기
50/74

Express route메소드 사용하기

express에서 route를 사용하는 일반전인 방법은 두가지가 있다.

첫번째는 app뒤에 메소드를 작성하는 방법
두번째는 라우트를 자제척으로 지정하고난 뒤에 메소드를 작성하는 방법.

여기서 좀 더 자세히 적고 싶은 방법은 두번째 방법이다. 첫번째 방법은 이때까지 많이 사용해봤던 방식이고, 익숙하여 새로운 방법에 대해서 적으려고 한다.

첫번째 방법 맛보기

const express = require("express")
const app = express();
// or const app = require('express')();
const cors = require("cors");
const bodyParser = require("body-parser");
const jsonParser = bodyParser.json();
//  라우팅 시작
app.use(cors());
app.get('/', (res,req)=>{
  //... todo
})
app.post('/', jsonParser, (res,req)=>{
  //...todo
})

위의 코드처럼 하나 하나 다 지정해야하는것이 첫번째 방법이다.
이번에 좀 더 간단하게 적을 수 있는 방법인 두번째 방법이다.
공식문서를 찾아보면 더 좋겠다.

const app = require('express')();
// or const express = require("express")
//    const app = express();
const cors = require("cors");
const bodyParser = require("body-parser");
const jsonParser = bodyParser.json();
app
  .route('/')
  .get((req, res) => {
    res.send('hi');
  })
  .post(jsonParser, (req, res) => {
    res.status(201).send(JSON.stringify(req.body));
  });

위의 코드가 두번째 방법이다.
이 방법이 첫번째 방법과 비교를 했을때,
체이닝이 좀 더 직관적으로 되어있어서 코드를 읽기 쉽는 장점이 있는거 같다.

body-parse 미들웨어

여기서 추가로 말하고 싶은 부분은 body-parse다
예전에는 body-parse미들 웨어를 사용하고 싶었다면

npm에서 install을 해줬어야했다. 그리고 JS파일 안에다가

const bodyParser = require("body-parser");
const jsonParser = bodyParser.json();
app
  .route('/')
  .post(jsonParser, (req, res) => {
    res.status(201).send(JSON.stringify(req.body));
  });

이렇게 post 메소드의 첫번째 인자로 jsonParser를 넣어주는 방법이 있었고

또 다른 방법은 아래 코드처럼 app.use(jsonParser)을 추가하면 됐다.

const bodyParser = require("body-parser");
const jsonParser = bodyParser.json();
app.use(jsonParser)     // -----------(추가하기)
app
  .route('/')
  .post((req, res) => {
    res.status(201).send(JSON.stringify(req.body));
  });

app.use(express.json())

그러나 요즘 Express v4.16.0 기준으로 express.js안에 body parser가 내장 되었다. 그래서 우리는 좀 더 간단하게 코드를 작성할 수 있다. app.use(express.json());를 사용하면 된다.

const express = require("express");
const cors = require("cors");
const app = express();
app.use(cors());
app.use(express.json());
// app.use(express.json()); 추가만 하면 끝 !!!
app
  .route("/")
  .get((req, res) => {
    res.send(JSON.stringify(data));
  })
  .post((req, res) => {
    res.status(201).send(JSON.stringify(req.body));
  });
profile
UX를 개선하는것을 즐기고 새로운것을 배우는것을 좋아하는 개발자입니다.

0개의 댓글