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같은 라이브러리를 사용해서도 손쉽게 데이터를 검증해줄 수 있다.
예를들어 아래 코드는 express-validator을 사용한 경우
app.post( '/signup',
checkSchema({
email: { isEmail: true },
pasword: { isLength: { options: { min: 8 } } },
}),
(요청, 응답) => {
실행할코드~~
}
)
유저가 보내고 있는 email, password라는 name 속성의 데이터들이 형식이 맞는지, pw가 8자 이상인지 같은 것들을 위 코드처럼 쉽게 검사할 수 있고, 함수로 빼내서 다른 API에서의 재사용도 쉽다.
그래도 실수로 코드짜다 실수로 이상한 데이터를 DB에 넣을 수 있으니 이런 부분을 정확하게 통제해주기 위해
MongoDB에 자체적으로 schema validation이 가능한 방법이 있다.
해당 문서 참고해보기