본문 바로가기
개발/Node JS

Node JS - body-parser를 이용해 데이터 전송 받기 (POST with body-parser)

by 피로물든딸기 2023. 12. 9.
반응형

Node JS 전체 링크

 

참고

- POST로 데이터 전송 받기

 

Body Parser를 이용해서 데이터를 받아보자.

npm install body-parser

 

./routes/axios_post_test.js를 아래와 같이 만들자.

body parser를 쓰더라도 query를 사용할 수 있다.

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

router.use(bodyParser.json({ limit: 100000000 })); // 100MB

router.post("/", (req, res) => {
  let name = req.query.name;
  let data = req.body.data;

  console.log(name);
  console.log(data);

  res.json({ result: true });
});

module.exports = router;

 

express server 코드는 다음과 같다. (axios_post_test를 라우터로 추가)

const express = require("express");
const app = express();

const cors = require("cors");
app.use(cors());

const axios_post_test = require("./routes/axios_post_test");

app.use("/axios_post_test", axios_post_test);

app.listen(3002, () => {
  console.log("Node.js Server is running on port 3002...");
});

테스트

 

리액트와 같은 프론트엔드에서 아래 함수를 실행해 보자.

  import axios from "axios";

  const test = async () => {
    let longData = "longlongdatalonglongdatalonglongdatalonglongdatalonglongdatalonglongdatalonglongdatalonglongdatalonglongdatalonglongdatalonglongdatalonglongdata"
    const response = await axios.post(
      "http://192.168.55.120:3002/axios_post_test?name=test",
      { data: longData },
      {
        header: { "content-type": "application/json" },
      }
    );

    console.log(response);
  };

 

참고로 name=test와 같이 query string을 추가하였다.

http://192.168.55.120:3002/axios_post_test?name=test

 

리액트에서 test 메서드를 실행하면 Node에서 정상적으로 데이터를 전송받는 것을 알 수 있다.

반응형

댓글