【问题标题】:Delete MongoDB document from Express, Node.js app从 Express、Node.js 应用程序中删除 MongoDB 文档
【发布时间】:2015-02-06 20:08:58
【问题描述】:

我的index.jade文件(用户点击删除文件的我的按钮)是:

a(href="/delete/#{booking.id}") Delete

到目前为止,我的 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, function (err, doc) {
  if (err) {
    message.type = 'Error!';
  }
  doc.remove(callback); //Removes the document
  });

两者都不起作用,我只是得到带有 ID 的 url:

localhost:3000/delete/54d49430b08883dc2fc8bb0d

【问题讨论】:

    标签: javascript node.js mongodb express


    【解决方案1】:

    您需要在删除之前执行,您还应该执行删除请求而不是 .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吗?您可以查看您的网络选项卡并查看它给出的响应吗?还要在这个删除方法中添加一些console.log()来查看doc是否存在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-09
    • 1970-01-01
    • 2016-07-27
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 2023-03-28
    相关资源
    最近更新 更多