Reputation: 1101
I have a file name Musicians.js that contains:
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);
});
};
In routes.js
app.put('/musicians/:id', musicians.update);
I call it like this:
$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);
});
};
I get 0 responses updated for it.
What could be wrong? Why does it not update records even for matching id's?
How do I fix this?
Upvotes: 0
Views: 290
Reputation: 106
Please try this:
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);
});
};
if not then try changing this:
var Musician = req.musician;
to this:
var Musician = req.Musician;
Let me know if this helped.
Upvotes: 1