删除文档,404找不到DELETE方法

时间:2017-07-11 13:15:08

标签: node.js ajax mongodb express mongoose

我在浏览器中点击按钮时无法删除数据库中的文档。我的视图如下所示:

extends layout

block content
  h1 #{article.title}
  h5 Written by #{article.author}
  p #{article.body}
  hr
  a.btn.btn-default(href='/article/edit/'+article._id) Edit
  a.btn.btn-danger.delete-article(href='#',data-id=article._id) Delete

我的js文件用ajax:

$(document).ready(function () {
$('.delete-article').on('click', function (e) {
    $target = $(e.target);
    const id = $target.attr('data-id');
    $.ajax({
        type: 'DELETE',
        url: '/article/' + id,
        success: function (response) {
            alert('Deleting Article');
            window.location.href = '/';
        },
        error: function (err) {
            console.log(err);
        }
    });
});
});

我的node.js代码

app.delete('article/:id', function (req, res) {
let query = {
    _id: req.params.id
};
    Article.remove(query, function (err) {
        if (err) {
            console.log(err);
        }
        res.send('Success');
    });
});

当我按下删除按钮返回我的时,我的浏览器中找不到错误404 DELETE http://127.0.0.1:3000/59636fbf6f6c7f1ff40bb1fb 404 (Not Found)

1 个答案:

答案 0 :(得分:0)

在您的Node.js代码中,您没有为host/:id定义路线,而是为/article/edit/:id

定义路线

此外 - 在您的AJAX通话中,您正在拨打/article/' + id

如果要通过对/article/:id执行DELETE的HTTP方法来删除文章,请确保将该路由添加到Node.js文件中。