我正在从本书中剔除猫鼬文档,即使是最简单的验证器也无法使用。我想念什么?我假设此验证程序将100%失败,但100%成功,并且我可以插入任何想要的用户ID。在此,我只是试图查看它是否被调用,并且在我期望它失败时总是通过插入。我已经尝试了许多在线上看到的变体和示例,在所有情况下似乎都没有调用验证器。
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const profileSchema = new Schema({
created: {
type: Date,
default: Date.now
},
userid: {
type: Schema.Types.ObjectId,
ref: 'user',
validate: {
validator: val => { return false; },
message: 'something'
}
});
const Profile = mongoose.model('profile',profileSchema);
答案 0 :(得分:1)
这是更新期间的已知问题。我不知道我进行更新的代码结构方式。我有一个名为findOneAndUpdate()的“添加”功能。感谢您的提问,帮助我找到问题。
查看答案: Mongoose .update() does not trigger validation checking
答案 1 :(得分:0)
您可以使用 validator this link上可用的npm软件包
现在,您可以使用仅返回布尔值的受支持方法。以下是代码段:
const validator = require('validator');
const mongoose = require('mongoose');
let userSchema = new mongoose.Schema({
email:{
type: String,
required: true,
trim: true,
validate: {
validator: validator.isEmail,
message: '{VALUE} is not a valid email'
}
},
password: {
type: String,
require: true,
minlength: 6
}
});
如您所见,您可以简单地通过内置方法进行验证,如果您想了解更多信息,请参阅validator.js's github repo