2016-07-25 4 views
2

でデータを保存していない私は、このコードマングースがエラーなし

 User.findOne({ email: req.body.email }, function(err, user) { 
     if (user) { 
      return res.status(400).json([{ msg: 'The email address you have entered is already associated with another account.' }]); 
     } 
     user = new User({ 
      name: req.body.name, 
      email: req.body.email, 
      password: req.body.password, 
      mobile: req.body.mobile 
     }); 
     user.save(function(err) { 
      res.json({ token: generateToken(user), user: user }); 
     }); 
     }); 

を持っている私は郵便配達してリクエストを送信しようとした私は、保存機能にはerrが存在しないことを意味し、ユーザーオブジェクトに戻って応答を取得しました

{ 
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJleGNlcHRpb25zLnNnIiwic3ViIjoiNTc5NWQ0NzQxYmEzZWQwODE1ZTgzY2NmIiwiaWF0IjoxNDY5NDM3MDQ0LCJleHAiOjE0NzAwNDE4NDR9.2otkcPkJgsXvR8QOHAojDJ5YCxR7Uc2E4ApS77T55F8", 
    "user": { 
    "__v": 0, 
    "created_at": "2016-07-25T08:57:24.612Z", 
    "updated_at": "2016-07-25T08:57:24.612Z", 
    "name": "Test", 
    "email": "[email protected]", 
    "password": "$2a$10$3UmABiDPeo6iHZ.DFbwOO.1ANpUWQmwr86bYbTmRuFedsbDcE0bbC", 
    "mobile": 12345, 
    "_id": "5795d4741ba3ed0815e83ccf" 
    } 
} 

しかし、これは私のDB内にはありません。私はRobomongoで自分のデータベースをチェックしましたが、データがないと確信しています。私は何を逃したのですか?

答えて

4

あなたアレントの変数名を変更し、これを試してみてくださいPROBだと思いますデータが保存されているかどうか、関連するエラーが何かを追跡することができます。

+0

感謝を。スキーマに存在しないユーザー名フィールド重複キーエラーがありました。コレクションを削除し、再び動作します。私はエラーをキャッチしていないことを認識していない。 – Exceptions

0

私はこれがちょうどこのことにより

user.save(function(err){ 
     if(err){ 
      console.log(err); 
      return; 
     } 

     res.json({ token: generateToken(user), user: user }); 
}); 

であなたのuser.save機能を置き換える、ユーザーオブジェクトのコレクションを保存中にエラーを処理

User.findOne({ email: req.body.email }, function(err, user) { 
     if (user) { 
      return res.status(400).json([{ msg: 'The email address you have entered is already associated with another account.' }]); 
     } 
     newUser = new User({ 
      name: req.body.name, 
      email: req.body.email, 
      password: req.body.password, 
      mobile: req.body.mobile 
     }); 
     newUser.save(function(err,saveUser) { 
      res.json({ token: generateToken(saveUser), user: saveUser }); 
     }); 
     }); 
0

この問題が発生した場合は、ご使​​用のモデルの_idSchemaTypeObjectIdである必要があります。

var userSchema = new mongoose.Schema({ 
    _id: mongoose.Schema.ObjectId, 
    userID: Number, 
    name: String 
}); 

var Users = mongoose.model('collectionName', userSchema); 

そして、我々はuserID 1234でユーザーの名前を更新したい:私たちはスキーマとモデルのように定義されているとし

Users.findOne({userID: 1234}, function(err, user) { 
    user.name = "Jane Doe"; 

    user.save(function(err) { 
     // ... 
    } 
} 

マングースが正常に実行することによって、それを更新します。

users.update({ _id: ObjectId("anObjectID") }, { '$set': { name: 'Jane Doe' } }) 

スキーマタイプをに設定した場合userSchemaStringからは、これをやったでしょう:

users.update({ _id: 'anObjectID' }, { '$set': { name: 'Jane Doe' } })