为什么express.static适用于app.get而不适用于app.get

时间:2017-06-12 12:36:44

标签: node.js express

在我的server.ts文件中的行

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

给了我404,而

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

正确地将'somefolder'中的'index.html'作为对'myhost / example'请求的响应。

根据快速文档,在GET请求的情况下,这些行为应该完全相同。为什么一个工作而另一个不工作?

1 个答案:

答案 0 :(得分: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()路线也会起作用。