Node.js 为什么express.js不路由二进制文件?
我想通过以下URL访问一个文件:Node.js 为什么express.js不路由二进制文件?,node.js,express,routes,Node.js,Express,Routes,我想通过以下URL访问一个文件: 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处理程序
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
感谢您的回复。Express用于匹配路径。如果您查看一下API,就会发现字符串'/db/signal/'
将只与该路径完全匹配;它不会匹配任何子路径。要匹配该路径和任何子路径,只需附加一个星号,如下所示:
app.get('/db/signal/*', (req, res) => { ... });
您可以在。Express用于匹配路径中看到更多匹配模式的示例。如果您查看一下API,就会发现字符串'/db/signal/'
将只与该路径完全匹配;它不会匹配任何子路径。要匹配该路径和任何子路径,只需附加一个星号,如下所示:
app.get('/db/signal/*', (req, res) => { ... });
您可以在中看到更多匹配模式的示例。thank You@McMath。我更改了代码,但当我输入文件的url时,将被下载(不运行回调
{//do}
)。我想我们需要更多信息。你能发布发送下载的处理程序吗?你能说明它是在你上面展示的处理器之前还是之后出现吗?我只是觉得如果我们要解决这个问题,我们需要更多的背景。谢谢@McMath。我更改了代码,但当我输入文件的url时,将被下载(不运行回调{//do}
)。我想我们需要更多信息。你能发布发送下载的处理程序吗?你能说明它是在你上面展示的处理器之前还是之后出现吗?我只是认为如果我们要解决这个问题,我们需要更多的背景。