본문 바로가기
Log/Trouble shoot

Express.js_body undefined 에러(파싱 문제)

by RIEM 2023. 2. 7.
728x90

trouble smashing log

Time: 2023-01-02 21:16

Problem

Express.js에서 request의 body로 받아온 데이터를 변수에 저장하려는데 undefined가 떴다.

body: undefined
accessToken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NzI0Njg4MzksImV4cCI6MTY3MjQ2ODg0OX0.GmK4eNiuu5utjUUptF6zD_ORccdi7HBxQUxskM7X_h8
refreshToken: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE2NzI0Njg4MzksImV4cCI6MTY3MzA3MzYzOX0.DpaOQ_iLYbFZnnLTcc5DTwufclvj2MxngxMBJDVnUfU

Cause

데이터가 있는 body로 요청한 것을 서버에서 받아들일 때, 파싱할 수 있는 미들웨어를 사용해야 정상적으로 데이터를 받아올 수 있다.

Solution

express.json()을 추가해주니 정상적으로 데이터를 받을 수 있다.

app.use(express.json());

해결

const jwt = require('jsonwebtoken');
const cookieParser = require('cookie-parser');
const express = require('express');
const app = express();
const port = 3002;

app.use(cookieParser());

app.use(express.json());


app.get('/', (req, res) => {
    res.status(200).send('Hello');
})
app.post('/set-key', (req, res) => {
    const {key} = req.body;
...

app.listen(port, () => {
    console.log('server is running..')
})

Related articles

http://expressjs.com/en/api.html#express.json

728x90

댓글