Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 为什么express.js不路由二进制文件?_Node.js_Express_Routes - Fatal编程技术网

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

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处理程序

我想通过以下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
处理程序无法执行。为什么?

我使用的是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}
)。我想我们需要更多信息。你能发布发送下载的处理程序吗?你能说明它是在你上面展示的处理器之前还是之后出现吗?我只是认为如果我们要解决这个问题,我们需要更多的背景。