2015-07-22 2 views
0

J'ai un Musicians.js de nom de fichier qui contient:dossier de mise à jour mongodb

exports.update = function(req, res) { 
    var id = req.params.id; 
console.log("ID-->" + id); //I GET CORRECT ID HERE 

    var updates = req.body; 
//It does not update any records 
     Musician.update({"_id":id}, req.body, 
     function (err, numberAffected) { 
      if (err) return console.log(err); 
      console.log('Updated %d musicians', numberAffected); //gives 0 updated musicians 
      return res.send(202); 


     }); 
    }; 

Dans routes.js

app.put('/musicians/:id', musicians.update); 

Je l'appelle comme ceci:

$scope.updateTodo = function(id) { 
     console.log("INSIDE UPDATE TO DO"); 
     console.log(id); 
     $scope.navMode = 'updateMusician'; 
     $scope.getOneTodo(id,function(data){ 
       var x=data; 
       console.log("X" + x); 
     $scope.formData.name= x.name; 
     $scope.formData.band = x.band; 
     $scope.formData.instrument = x.instrument; 
     }); 
     $http.put('/musicians/' + id) 
      .success(function(data) { 
       $scope.todos = data; 
       console.log("UPDATED||||||||||||||||||||||||||||||||||||||"); 
         console.log(data); 
      }) 
      .error(function(data) { 
       console.log('Error: ' + data); 
      }); 


    }; 

Je reçois 0 réponses mises à jour pour cela.

Qu'est-ce qui pourrait ne pas fonctionner? Pourquoi ne met-il pas à jour les enregistrements même pour les ID correspondants?

Comment résoudre ce problème?

Répondre

1

S'il vous plaît essayez ceci:

exports.update = function(req, res) { 
 
    var Musician = req.musician; 
 

 
    Musician = _extend(Musician, req.body); 
 

 
    Musician.save(function (err, numberAffected) { 
 
     if (err) { 
 
     console.log(err); 
 
     return; 
 
     } 
 
     console.log('Updated %d musicians', numberAffected); 
 
     res.jsonp(Musician); 
 
    }); 
 
};

sinon essayez de changer cette situation

var Musician = req.musician;

à ceci:

var Musician = req.Musician;

Laissez-moi savoir si cela a aidé.

+0

Veuillez vérifier la mise à jour –

+0

@SimranKaur Vous avez un champ _id. Tapez db.Musicians.find() dans mongo et vous le verrez. Mais avez-vous essayé ma réponse? Y a-t-il des erreurs? – Tomasz

+0

Veuillez vérifier la question mise à jour. On dirait que j'ai eu un problème différent tous ensemble. –