본문 바로가기
컴퓨터 프로그래밍/Node.js

[Node.js] 글 작성기능 만들기 2 (insertOne, 예외 처리)

by 한33 2023. 11. 7.
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 변수는 에러 문구를 보여준다고 한다.