Javascript 从Express、Node.js应用程序中删除MongoDB文档
我的index.jade文件(用户单击以删除文档的我的按钮)是: 到目前为止,在我的index.js文件中:Javascript 从Express、Node.js应用程序中删除MongoDB文档,javascript,node.js,mongodb,express,Javascript,Node.js,Mongodb,Express,我的index.jade文件(用户单击以删除文档的我的按钮)是: 到目前为止,在我的index.js文件中: router.get('/delete/:id', function (req, res) { Booking.findOneAndDelete({ id: req.params.id }).remove().exec(); }); 我还试过: router.get('/delete/:id', function (req, res) { Booking.findById(id
router.get('/delete/:id', function (req, res) {
Booking.findOneAndDelete({ id: req.params.id }).remove().exec();
});
我还试过:
router.get('/delete/:id', function (req, res) {
Booking.findById(id, function (err, doc) {
if (err) {
message.type = 'Error!';
}
doc.remove(callback); //Removes the document
});
两者都不起作用,我只获取ID为的url:
localhost:3000/delete/54d49430b08883dc2fc8bb0d在删除之前,您需要执行删除请求,而不是.get()。试试这个:
router.delete('/delete/:id', function (req, res) {
Booking.findById(req.params.id)
.exec(function(err, doc) {
if (err || !doc) {
res.statusCode = 404;
res.send({});
} else {
doc.remove(function(err) {
if (err) {
res.statusCode = 403;
res.send(err);
} else {
res.send({});
}
});
}
});
});
我尝试了这个,我仍然得到了url更改,但它并没有从数据库中删除文档。这个id是有效的id吗?你能看看你的网络标签,看看它给出了什么反应吗?还要在这个delete方法中添加一些console.log(),以查看是否有doc。
router.delete('/delete/:id', function (req, res) {
Booking.findById(req.params.id)
.exec(function(err, doc) {
if (err || !doc) {
res.statusCode = 404;
res.send({});
} else {
doc.remove(function(err) {
if (err) {
res.statusCode = 403;
res.send(err);
} else {
res.send({});
}
});
}
});
});