[Node+MongoDB]데이터 validation

김나나·2024년 9월 1일

Node.js

목록 보기
41/50

Mongoose 라이브러리를 추가로 설치해서 사용하는 경우,

const Blog = mongoose.model('Blog', new Schema({
  title: String,
  content: String
}))

const article = new Blog({
  title: '타이틀입니도',
  content: '글내용입니도',
})

article.save() 

collection에 저장될 document가 어떻게 생겼는지 정의를 해줘야함(schema)
그리고 다음으로 위처럼 입출력을 해주면 되는데,

굳이 mongoose가 아니더라도 if문을 사용해서도 데이터를 검사해줄 수 있다.

다만, if문을 사용하면 코드가 길어지게 되는데,

express-validator혹은 ajv같은 라이브러리를 사용해서도 손쉽게 데이터를 검증해줄 수 있다.

✨DB에 저장할 데이터 검증(validation)

예를들어 아래 코드는 express-validator을 사용한 경우

app.post( '/signup',
  checkSchema({
    email: { isEmail: true },
    pasword: { isLength: { options: { min: 8 } } },
  }),
  (요청, 응답) => {
      실행할코드~~
  }
) 

유저가 보내고 있는 email, password라는 name 속성의 데이터들이 형식이 맞는지, pw가 8자 이상인지 같은 것들을 위 코드처럼 쉽게 검사할 수 있고, 함수로 빼내서 다른 API에서의 재사용도 쉽다.

그래도 실수로 코드짜다 실수로 이상한 데이터를 DB에 넣을 수 있으니 이런 부분을 정확하게 통제해주기 위해
MongoDB에 자체적으로 schema validation이 가능한 방법이 있다.
해당 문서 참고해보기


profile
10분의 정리로 10시간을 아낄 수 있다는 마음으로 글을 작성하고 있습니다💕

0개의 댓글