我有一个包含多个统一的模式,如下所示:
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!']);
}
});
因此,在本例中,我希望为两个字段设置自定义消息:user和email。有什么办法吗?
发布于 2019-10-10 14:26:37
我通过发送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!']);
}
});
https://stackoverflow.com/questions/58331113
复制