为什么express.js不路由二进制文件?

时间:2016-02-24 06:04:35

标签: node.js express routes

我想要通过以下网址访问我的文件:

http://127.0.0.1:400/db/signal/test.xlsx

我的Express应用程序中有以下GET处理程序:

app.get('/db/signal/', function (req, res) {
   // handle route
});

当我浏览http://127.0.0.1:400/db/signal/时,执行处理程序。但是当我浏览到http://127.0.0.1:400/db/signal/test.xlsx时,处理程序无法执行。为什么呢?

我正在使用Express版本4。

感谢您的回复。

1 个答案:

答案 0 :(得分:2)

Express使用path-to-regexp来匹配路径。如果您查看API,您会发现字符串'/db/signal/'只会匹配完全该路径;它不会匹配任何子路径。要匹配该路径和任何子路径,只需添加一个星号,如下所示:

app.get('/db/signal/*', (req, res) => { ... });

您可以在Express routing guide中看到更多匹配模式的示例。