반응형

다음과 같이 body에 {hello: "world"}라는 값을 서버로 보낸다고 가정해보자.

  const handleShare = async () => {
    const upload_url = `${API_BASE_URL}/${storagePath}`;
    console.log(upload_url);
    const response = await fetch(`${API_BASE_URL}/sharedstorage/compress`, {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify({ hello: "world" }),
    });
    setUploadState(UPLOAD_STATE.UPLOAD_ENABLED);
  };

 

하지만 다음과 같이 req.body가 undefined로 온다면 어떻게 해결해야할까?

router.post("/sharedstorage/compress", (req: Request, res: Response) => {
  console.log("Compress ! : ", req.body);

  res.status(200).json({ message: "Upload successful!" });
});


node (express)에서 다음과 같이 코드를 작성해야 한다.

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

 

이때 app.use(router) 전에 두 값을 설정해야한다.

app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(router);
const express = require('express');
const bodyParser = require('body-parser');

const app = express();

// body-parser middleware
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(router);

app.post("/sharedstorage/compress", (req, res) => {
  console.log("Compress ! : ", req.body);

  res.status(200).json({ message: "Upload successful!" });
});

// 나머지 코드...

 

 

반응형