如果我有一条规则:
CommentSchema.path('body').validate(function(body) {
return body.length;
}, 'Body cannot be empty');
如果我这样做:
curl -d "author=Kris" \
-d "email=Jordan" \
http://localhost:3000/api/comment
服务器崩溃,出现如下错误消息:
Cannot read property 'length' of undefined
所以我想知道是否有办法避免所有时间 在每个规则中):
CommentSchema.path('body').validate(function(body) {
if(typeof body !== "undefined" && body !== null){
return body.length > 0
}
return false;
}, 'Body cannot be empty');
答案 0 :(得分:1)
您应该能够将其简化为:
CommentSchema.path('body').validate(function(body) {
return !!body;
}, 'Body cannot be empty');
!!
并非绝对必要,但它通过明确地将body
评估为布尔值来帮助澄清正在发生的事情。 <{1}},null
和undefined
都评估为false。