【发布时间】:2015-07-27 21:30:22
【问题描述】:
我正在尝试使用 mongoose 在 mongodb 中保存一个新文档,但即使我提供了电子邮件、密码哈希和用户名,我也会收到 ValidationError: Path 'email' is required., Path 'passwordHash' is required., Path 'username' is required.。
这是用户架构。
var userSchema = new schema({
_id: Number,
username: { type: String, required: true, unique: true },
passwordHash: { type: String, required: true },
email: { type: String, required: true },
admin: Boolean,
createdAt: Date,
updatedAt: Date,
accountType: String
});
这就是我创建和保存用户对象的方式。
var newUser = new user({
/* We will set the username, email and password field to null because they will be set later. */
username: null,
passwordHash: null,
email: null,
admin: false
}, { _id: false });
/* Save the new user. */
newUser.save(function(err) {
if(err) {
console.log("Can't create new user: %s", err);
} else {
/* We succesfully saved the new user, so let's send back the user id. */
}
});
那么为什么mongoose会返回验证错误,我可以不使用null作为临时值吗?
【问题讨论】:
-
好吧,我看不到您在哪里设置 newUsers 电子邮件、passwordHash 和用户名。您将它们设置为 null 然后尝试保存它。
-
你不能那样做吗?
null是一个值。 -
我正在搜索同样的问题。原来我这样做了 create({ ...stuff }, { new: true })... 选项不好!
标签: javascript node.js mongodb mongoose