Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从Express、Node.js应用程序中删除MongoDB文档_Javascript_Node.js_Mongodb_Express - Fatal编程技术网

Javascript 从Express、Node.js应用程序中删除MongoDB文档

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

我的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, 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({});
                    }
                });
            }
        });
});