新しいユーザーと電子メールを登録しようとするとmongoose約束を使ってエラーをキャッチしています。ここでは、コードされています、ここで関数を呼び出すためのコードはMongoose save()関数の重複キーのエラーオブジェクト
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
というプロパティを追加しているので、どちらか一方に重複した値を作成しようとすると、エラーが発生します。これは私が重複値を作成しようとしました「catched」されたボディエラー
{
"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*/}
}
ですが、それは、重複する値を持つプロパティを示すことなく、上記と同じエラーを示しました。エラー/重複値を持つプロパティを指定する他のアイデア/アプローチ
名前がnullになっているようです。それは既にDBに存在します。それはなぜ起こっているのですか –