Mongoosejs验证未定义的属性

时间:2014-02-04 13:28:22

标签: mongoose

如果我有一条规则:

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');

1 个答案:

答案 0 :(得分:1)

您应该能够将其简化为:

CommentSchema.path('body').validate(function(body) {
    return !!body;
}, 'Body cannot be empty');

!!并非绝对必要,但它通过明确地将body评估为布尔值来帮助澄清正在发生的事情。 <{1}},nullundefined都评估为false。