2016-02-24 59 views
0

我有一個文件,我想通過以下網址訪問:爲什麼express.js不路由二進制文件?

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

而且我有我的快遞應用中的以下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.

感謝您的回覆。

回答

2

Express使用path-to-regexp來匹配路徑。如果你看看這個API,你會發現字符串'/db/signal/'只會匹配,正好是那個路徑;它不會匹配任何子路徑。爲了配合這條道路和任何子路徑,只是追加一個星號,就像這樣:

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

你可以看到在Express routing guide匹配模式的更多的例子。

+0

謝謝@McMath。我改變了代碼,但是當我輸入文件的url,被下載(不運行回調'{// do}')。 – hahamed

+0

我想我們需要更多信息。你能發佈發送下載的處理程序嗎?你能證明它是在你上面展示的處理器之前還是之後出現?如果我們要解決這個問題,我想我們需要更多的背景。 – McMath

相關問題