我试图在任何地方找到这个问题的答案,但看起来我运气不好。猫鼬{strict:throw}不会抛出错误
我有一个非常简单的猫鼬模型
var userObject = {
profile: {
username: {
type: String,
required: true,
lowercase: true
},
firstname: {
type: String,
required: true
},
lastname: {
type: String,
required: true
},
img: {
type: String,
required: true,
match: /^(https?:\/\/)/i
},
email: {
type: String,
match: /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-][email protected][a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/,
required: true
},
singupdate: {
type: Date,
default: Date.now
}
}
};
而且,当我创建架构我选择的选项时,我没有在模型中添加属性抛出一个错误。
new mongoose.Schema(userObject, { strict: "throw" });
这就是我试图捕捉错误的方法。当我添加有效的属性时,进程运行,并且重新创建所创建的文档,但是当我添加无效的属性时,该进程永远不会退出,并且日志永远不会显示在控制台上。
try {
User.create(users, function(err, docs) {
console.log("err: " + err);
console.log("docs: " + docs);
});
} catch (e) {
console.log(e.message);
}
我做错了什么?
有没有办法知道哪些字段没有保存? – Leia
在您的模型中为您的字段添加'required:true'确保它们将被保存,否则它们不是必需的,如果它们不是输入的一部分,则不会被报告 –