HTTP DELETE在Node.js的动词(HTTP DELETE verb in Node.JS

2019-08-05 17:30发布

我是否需要设置任何配置,然后才能给DELETE请求到Node.js应用程式?

我可以做GETPOSTPUT请求,但DELETE请求将无法正常工作。

DELETE http://localhost:8081/api/1.0/entry产量undefined从路由记录器,我使用的快递注册路线。 但它看起来像我甚至无法解析URL /动词。

这是我如何调用它:

rows.find('a.remove').on('click', function(){
    $.ajax({
        url: '/api/1.0/entry',
        type: 'DELETE'
    }).done(function(res){
        var row = $(this).parentsUntil('tbody');
        row.slideUp();
    });
});

示例日志

GET / 200 18ms  
GET /author/entry 200 10ms  
GET /api/1.0/entry 200 2ms  
GET /api/1.0/entry 200 1ms  
GET /api/1.0/entry 200 1ms  
undefined

Answer 1:

希望这可以帮助:

  • 启用日志作为你的第一个中间件,以确保该请求在即将到来:

    app.use(express.logger());

  • 使用methodOverride()中间件:

    app.use(express.bodyParser());

    app.use(express.methodOverride()); // looks for DELETE verbs in hidden fields

  • 创建.DEL()路线:

    app.del('/api/1.0/entry', function(req, res, next) { ... });



Answer 2:

对于类型设置PUT和DELETE值不是所有的浏览器都支持:

见文档http://api.jquery.com/jQuery.ajax/

您可以使用POST类型的数据 ,包括:{_方法:“删除”}在Ajax请求:

$.ajax({
    data:{_method:'delete'},
    url: '/api/1.0/entry',
    type: 'POST'
}).done(function(res){
    var row = $(this).parentsUntil('tbody');
    row.slideUp();
});


文章来源: HTTP DELETE verb in Node.JS