Javascript Node.JS中的HTTP删除谓词

Javascript Node.JS中的HTTP删除谓词,javascript,node.js,http,rest,express,Javascript,Node.js,Http,Rest,Express,在向node.js应用程序发出删除请求之前,是否需要设置任何配置 我可以发出GET、POST或PUT请求,但DELETE请求无效 删除http://localhost:8081/api/1.0/entry从路由记录器中生成未定义的,我正在使用express注册路由。但看起来我甚至无法解析url/动词 这就是我调用它的方式: rows.find('a.remove').on('click', function(){ $.ajax({ url: '/api/1.0/entry

在向node.js应用程序发出删除请求之前,是否需要设置任何配置

我可以发出
GET
POST
PUT
请求,但
DELETE
请求无效

删除http://localhost:8081/api/1.0/entry
从路由记录器中生成
未定义的
,我正在使用express注册路由。但看起来我甚至无法解析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

希望这有助于:

  • 启用日志记录作为第一个中间件,以确保请求进入:

    app.use(express.logger())

  • 使用methodOverride()中间件:

    app.use(express.bodyParser())

    app.use(express.methodOverride());//在隐藏字段中查找删除谓词

  • 创建一个.del()路由:

    app.del('/api/1.0/entry',函数(req,res,next){…})


并非所有浏览器都支持为类型设置放置和删除值:

见文件

您可以在ajax请求中使用POST类型,包括数据:{u方法:'delete'}

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

express中不需要配置。。。只需使用app.delete('/api/1.0/entry',函数(req,res){我以为它应该是
.del
?是的……你也可以使用.del。一直都在使用.delete。你在使用什么浏览器?chrome edge,为什么?我可以在控制台中看到请求被触发,它只是从来没有到达服务器日志记录被启用,但当请求进来时,我得到
未定义的
,作为路由,这真的很重要rdI认为如果你能发布你的(相关的)信息,那将非常有帮助服务器端代码…如果路由是
undefined
,那么问题是客户端,而不是服务器端。Express将不会将
undefined
/api/1.0/entry
匹配。但是我在路由中间件之前得到
undefined
,在
Express.logger
中,请参阅OP以获取示例列表。我同意Golo,它将是我们我很高兴看到相关的服务器端代码。尤其是中间件堆栈。对于您来说,制作一个只有一个要调试的删除路由的最小服务器也是一个好主意。堆栈中有methodOverride()中间件吗?所有当代浏览器都支持它们。