详细的Mongoose验证错误?

时间:2015-10-13 10:31:11

标签: node.js mongodb mongoose

如何在Mongoose路径上执行validate但返回更详细的错误消息?在下面的示例中,我想返回四种可能的错误。虽然我将它们记录到控制台,但我宁愿将它们作为错误发送回来,而不仅仅是"文件大小无效":

schema.path('size').validate(function (size) {

    if (typeof size == 'undefined' || size == null) { console.log('no size supplied'); return false; }
    if (typeof size != 'number') { console.log('size not a number'); return false; }
    if (size < 0) { console.log('size is negative'); return false; }
    if (Math.floor(size) != Number(size)) { console.log('size is decimal'); return false; }

    return true;

}, 'Invalid file size');

1 个答案:

答案 0 :(得分:1)

您可以在同一条路径上链接多个validate个调用,并为每个调用提供自己的错误消息:

schema.path('size')
    .validate(function (size) {
        return !(typeof size == 'undefined' || size == null);
    }, 'no size supplied')
    .validate(function (size) {
        return (typeof size == 'number');
    }, 'size not a number')
    .validate(function (size) {
        return (size >= 0);
    }, 'size is negative')
    .validate(function (size) {
        return (Math.floor(size) == Number(size));
    }, 'size is decimal');