gpt4 book ai didi

node.js - 使用 2 个字段的 Mongoose 自定义验证

转载 作者:IT老高 更新时间:2023-10-28 11:05:22 24 4
gpt4 key购买 nike

我想使用 mongoose 自定义验证来验证 endDate 是否大于 startDate。如何访问 startDate 值?使用this.startDate时,不起作用;我不确定。

var a = new Schema({
startDate: Date,
endDate: Date
});

var A = mongoose.model('A', a);

A.schema.path('endDate').validate(function (value) {
return diff(this.startDate, value) >= 0;
}, 'End Date must be greater than Start Date');

diff 是一个比较两个日期的函数。

最佳答案

您可以使用 Mongoose 'validate' middleware 来做到这一点这样您就可以访问所有字段:

ASchema.pre('validate', function(next) {
if (this.startDate > this.endDate) {
next(new Error('End Date must be greater than Start Date'));
} else {
next();
}
});

请注意,在调用 next 以报告验证失败时,您必须将验证错误消息包装在 JavaScript Error 对象中。

关于node.js - 使用 2 个字段的 Mongoose 自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23760253/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com