기억 휘발 방지소

[Node.js] req.body, req.params, req.query에 대하여 with Express, Axios 본문

Web/Node.js

[Node.js] req.body, req.params, req.query에 대하여 with Express, Axios

choice91 2021. 10. 30. 16:56
728x90
반응형

📌 req.body

JSON과 같은 데이터를 받을 때 사용한다.

// axios로 요청보내기
await axios.({
  url: "http://localhost:4000",
  method: "POST",
  data: {
    title: "hello",
    content: "hello world",
  },
});

서버에서 받을 때에는 아래 설정을 해줘야한다.

const express = require("express");
const bodyParser = require("body-parser");

const app = express();

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

+) express 4.16.0버전 이후에는 bodyParser의 기능 일부가 express에 포함되었기 때문에 아래 코드처럼 사용해도 된다.

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

위의 설정을 해주면 req.body로 값을 받을 수 있다.

exports.uploadPost = async (req, res, next) => {
  console.log(req.body); // { title: "hello", content: "hello world" }
  // ...
};

 

📌 req.params와 req.query

http://localhost:4000/post/1?name=kim 라는 url이 있고

서버 라우터가 다음과 같을 때

router.get("/:id", function);

1. req.params

req.params의 값은 { id: 1 }이다.

exports.test = async (req, res, next) => {
  console.log(req.params); // { id: 1 }
  // ...
};

2. req.query

req.query의 값은 { name: "kim" }이다.

exports.test = async (req, res, next) => {
  console.log(req.query); // { name: "kim" }
  // ...
};
728x90
반응형