Node和Express,使用.all()获取所有(自定义)方法

时间:2016-02-18 16:11:52

标签: node.js curl express

在Node和Express中,我试图将所有流量发送到这样的网址。

APP.all('/testCase', function(req, res) {
    console.log('Im called with the method: ' + req.method);
});

如果我现在这样做: curl -X GET http://localhost:3000/testCase它工作正常,我收到回复:Im called with the method: GET

但是当我这样做时: curl -X INSERT http://localhost:3000/testCase我得到了:curl: (52) Empty reply from server

我做错了什么?我会有很多自定义方法

2 个答案:

答案 0 :(得分:0)

节点http解析器不支持INSERT方法。要查看支持的HTTP方法列表,您可以运行node -pe "require('http').METHODS"。为了支持自定义HTTP方法,人们必须自己修补核心(特别是http解析器)。

答案 1 :(得分:0)

app.all(path, callback [, callback ...])
  

此方法类似于标准的app.METHOD()方法,除了它   匹配所有HTTP动词。

     

它对于映射特定路径前缀的“全局”逻辑非常有用   任意比赛。例如,如果您将以下内容放在顶部   所有其他路由定义,它要求所有路由   指向要求身份验证,并自动加载用户。保持   请记住,这些回调不必充当终点:   loadUser可以执行任务,然后调用next()继续匹配   后续路线。

最常见的HTTP methods是:

  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • TRACE
  • CONNECT