2014-02-04 3 views
0

Если у меня есть правило, как:Mongoosejs проверки не определено свойство

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

Вы должны быть в состоянии упростить его:

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

!! не является строго необходимым, но это помогает выяснить, что происходит, явно оценивая body как логическое значение. null, undefined, и '' все оцениваются как ложные.

+0

'body && body.length' - еще одна альтернатива. –

Смежные вопросы