【发布时间】:2017-12-27 20:25:55
【问题描述】:
当用户尝试注册新用户和电子邮件时,我使用猫鼬承诺来捕获错误。代码如下:
user.service.js
function create(userParams) {
var user = new User(userParams);
return user.save();
}
在我的 API 路由器上,这里是调用函数的代码:
user.controller.js
function register(req, res) {
var user = {
uname : req.body.uname,
email : req.body.email,
password : req.body.password
}
userService.create(user)
.then(function(){
res.status(200).json({ success: true, message: 'User Created!' });
})
.catch(function(err){
res.status(400).send(err);
})
}
当我运行函数和存储在 mongoDB 上的数据时,它工作正常。我想知道的是,我在 uname 和 email 上都添加了 unique 属性,所以当我尝试在其中任何一个上创建重复值时,都会产生错误。这是已“捕获”的正文错误
{
"code":11000,
"index":0,
"errmsg":"E11000 duplicate key error collection: flash-card.users index: name_1 dup key: { : null }",
"op":{/*Contain all info that want to be registered*/}
}
我尝试创建重复值,但它在上面显示相同的错误,但没有指明哪个属性具有重复值。任何其他想法/方法来指定哪个属性得到错误/重复值?
【问题讨论】:
-
看起来你的名字是空的。这已经存在于数据库中。这就是为什么会发生这种情况
标签: node.js mongodb express mongoose promise