如何在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');
答案 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');