컴퓨터 프로그래밍/Node.js
[Node.js] 글 작성기능 만들기 2 (insertOne, 예외 처리)
한33
2023. 11. 7. 00:22
app.post('/add', async (요청, 응답) => {
console.log(요청.body)
await db.collection('post').insertOne({ title: 요청.body.title, content: 요청.body.content })
응답.redirect('/list')
})
다음과 같이 DB 로 저장을 시킬 수 있다.
요청.body 를 출력하면 데이터가 object 자료형식으로 출력되는데,
요청.body.title 처럼 해당 데이터를 지정한 DB의 key 값에 매치시켜 저장할 수 있다.
저장된 후에 응답.redirect('/list') 를 하면 자동으로 페이지를 옮긴다.
하지만 위 코드는 서버에서 한 번 검열하는 기능이 없어 안정성면에서 떨어진다.
app.post('/add', async (요청, 응답) => {
console.log(요청.body)
try {
if (요청.body.title == '') {
응답.send('제목입력안했음')
} else {
await db.collection('post').insertOne({ title: 요청.body.title, content: 요청.body.content })
응답.redirect('/list')
}
} catch (e) {
console.log(e)
응답.status(500).send('서버에러남')
}
})
우선 if 문을 이용해서 title 값이 빈칸이면 DB 로 바로 저장이 안되게끔 코드를 짰고,
try ~ catch 문을 이용해 서버에 오류가 생겼을 시에 이를 알려주기 위한 코드를 짰다.
e 변수는 에러 문구를 보여준다고 한다.