본문 바로가기

programming/Web

[Express] Post로 JSON 데이터 보내기 (미들웨어 설정)

express 설치 후

 

post로 JSON 객체를 보내려는데, undefined 가 뜬다

 

post 라우터

app.post('/cats', (req: express.Request, res: express.Response) => {
    try {
        const data = req.body
        console.log(data)
        res.status(200).send({
            success: true,
            data : {}
        })
    }
    catch(error){
        res.status(400).send({
            success: false,
            error: error.message
        })
    }
})

 

포스트맨에서 테스트한 내용

 

백엔드 라우터에서 콘솔로그로 받은 req.body -> undefined

 

 

이는 아주 간단하게 해결된다

express가 json 데이터를 읽을 수 있도록 내장 미들웨어를 설정해 주기만 하면 된다

 

app.use(express.json())

 

express 라우터를 구성할 때 주의점은 순서가 중요하다는 것이다.

먼저 실행되어야 할 미들웨어들을 위로 올리고,

차례로 라우터들을 배치하고,

마지막에 not found 에러 처리를 위한 미들웨어 등 후순위 미들웨어를 배치한다

 

json 미들웨어를 추가하고 나서 정상적으로 req.body 가 찍히는 모습 확인