我有一个具有多个唯一性的架构,如下所示:
var userSchema = new mongoose.Schema({
user: {
type: String,
unique: true
},
email: {
type: String,
unique: true
}
});
在尝试进行保存期间,我知道我可以访问属性
err.code
(11000)来处理唯一错误,如下所示:user.save((err, doc) => {
if(!err) {
res.send(doc);
} else {
if (err.code == 11000)
res.status(422).send(['Message here!']);
}
});
因此,在这种情况下,我想为两个字段设置自定义消息:用户和电子邮件。
有什么办法吗?
最佳答案
我找到了发送 object error
并检查其属性的方法,并注意到有一个名为 keyPattern 的属性。
因此,代码工作正常:
user.save((err, doc) => {
if(!err) {
res.send(doc);
} else {
if (err.code == 11000)
if(Object.keys(err.keyPattern)[0] === "user")
res.status(422).send(['Duplicate user!']);
else if(Object.keys(err.keyPattern)[0] === "email")
res.status(422).send(['Duplicate email!']);
}
});
关于mongoose - 如何独立处理 Mongoose 中多个唯一性的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58331113/