Mongoose findAndUpdate()验证此为null



我试图在更新之前对我的模式运行验证,下面是它的代码。

模式

var workSchema = mongoose.Schema({
location: {
    type: String,
    required: true,
    enum: LOCATIONS
},
flags: {
    isHourly: {
        type: Boolean,
        default: false,
        validate: [workValidators, 'Message']
    }
}
});

function workValidators(flag) {
 if (flag) {
/* WHY IS .this NUll? */
assert(this.location, 'Must have location specified');
}}

workSchema.findByIdAndUpdate(id, {
   $set: info
}, {
   runValidators: true,
   new: true
 }).then((updatedModel) => {
  return updatedModel.toObject();
});
};

这是因为验证函数中的This具有不同的This上下文。其思想只是针对传递的参数提供一个简单的验证。如果您想要更复杂的东西,可以尝试使用猫鼬钩子。

相关内容

  • 没有找到相关文章

最新更新