gpt4 book ai didi

node.js - 为什么express.static可以与app.use一起使用,但不能与app.get一起使用

转载 作者:太空宇宙 更新时间:2023-11-03 22:10:13 25 4
gpt4 key购买 nike

在我的 server.ts 文件中,该行

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

给我一​​个 404,而

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

正确地从“somefolder”提供“index.html”作为对“myhost/example”请求的响应。

根据明确的文档,这些在 GET 请求中的行为应该完全相同。为什么一个有效而另一个无效?

最佳答案

这两种方法的不同之处(除其他外)在于如何 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() 路由也将起作用。

关于node.js - 为什么express.static可以与app.use一起使用,但不能与app.get一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44499667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com