Reputation: 129
I did a restful delete to remove a record by id.. It didn't return me any error, but the record isn't get removed in my collection
my route
app.delete('/api/genres/:id',function(req,res){
var id = req.params._id;
var genre = req.body;
Genres.deleteGenre(id, function(err,genre){
if(err){
throw err;
}
res.json(genre)
})
});
my model (I'm using mongoose)
//Delete Genre
module.exports.deleteGenre = function (id, callback) {
var query = {_id: id};
Genre.remove(query, callback);
}
it even return ok status with
{"ok":1,"n":0}
Upvotes: 1
Views: 1707
Reputation: 514
app.delete('/api/genres/:id',function(req,res){
var id = req.params.id;
Genres.deleteGenre(id, function(err,genre){
if(err){
throw err;
}
res.json(genre)
})
});
//Delete Genre
module.exports.deleteGenre = function (id, callback) {
var query = {_id: id};
//use this to findByIdAndRemove in mongoose, it will work
Genre.findByIdAndRemove(query, callback);
}
you don't need to take anything in var genre = req.body Try this!!!
Happy Coding!!!
Upvotes: 2
Reputation: 1222
use findById to get the document first then you will be able to remove them
Genre.findById(req.params.id, function(err, genre){
if(err) { return res.send(500, err); }
genre.remove(function(err){
if(err) { return res.send(500, err); }
return res.send(204);
});
});
Upvotes: 1