app.post('/comments', (req,res) => {
const {username, comment} = req.body;
comments.push({username, comment});
res.send("POST SUCCESS!!!");
})
해당 코드를 통해 form 제출을 완료하고 comment 를 추가했다고 가정하면 다음과 같은 페이지가 나온다.
하지만 문제점이 하나 발생하는데, 해당 페이지에서 새로고침을 누르면 ???
다음과 같은 창이 뜨고, 계속 버튼을 누른 뒤 몇번의 새로고침과 계속버튼의 클릭이 이어지면 ?
이렇게 우리가 입력한 comment가 여러번 추가된 것을 볼 수 있다. 실제로 이런식으로 데이터가 처리된다면 큰 문제가 생길 것이다.
--> 이러한 이유로 대부분의 POST 요청시 redirect
를 이용하여 GET으로 바꿔줄 필요가 있다.
app.post('/comments', (req,res) => {
const {username, comment} = req.body;
comments.push({username, comment});
res.redirect('/comments');
})
다음과 같이
res.redirect('/comments')
를 통해 폼 입력을 제출하고 나면 comment 목록을 보여주는/comment
페이지로 리다이렉트가 이루어진다.