2017-06-12 100 views
0

在我server.ts文件中的行爲什麼express.static工作,app.use但與app.get

app.get('/example', express.static('somefolder')); 

給了我404,而

app.use('/example', express.static('somefolder')); 

正確的服務作爲對'myhost/example'請求的響應,'somefolder'中的'index.html'。

根據快速文檔,這些應該在GET請求的情況下表現完全相同。爲什麼一個人工作,另一個不工作?

回答

0

這兩種方法在req.path的填充方式不同(除其他事項外):

  • app.get('/example'),它被設置爲/example/
  • app.use('/example'),它被設置爲/

當使用express.static(),這意味着在內部,靜態中間件會將請求路徑轉換到不同的位置:

  • app.get('/example'),它將在somefolder/example/
  • app.use('/example'),它將在somefolder/

您可以輕鬆地測試通過創建somefolder/example/index.html文件複製到它;當你這樣做時,app.get()路線也會起作用。

相關問題