node.js - 对中间件函数的路由感到困惑
问题描述
当对根有get请求时
app.get("/", (req, res)=>res.sendFile(__dirname+"/views/index.html") )
发回一个文件。
现在,这个函数
app.use("/", express.static("public"))
以同样的方式解释?我希望
https://myaddress.com/style.css
不要将任何东西作为请求返回给根/
,而是/style.css
那我应该如何解释这个函数呢?
解决方案
app.use("/", ...)
将匹配任何以/
. 所以,
app.use("/", express.static("public"))
将尝试与它看到的每个 URL 进行匹配(因为它们都以 开头/
)并且实际上与以下内容相同:
app.use(express.static("public"));
因为默认路径app.use()
是/
在没有指定时。
app.use()
在这方面不同于app.get()
,app.post()
等。
直接来自Expressapp.use()
文档:
路由将匹配紧随其路径的任何路径,并带有“/”。例如: app.use('/apple', ...) 将匹配“/apple”、“/apple/images”、“/apple/images/news”等。
而app.get('/apple', ...)
只会匹配/apple
。它不会匹配/apple/images
。 app.use()
在匹配上更加宽松。
推荐阅读
- r - 无法将 README.Rmd 推送到 GitHub
- python - 多索引列数据框 - 在 read_excel 末尾添加了额外的列
- html - 如何将部分导航内容向右对齐?
- c# - 在 SOAP 请求 .NET CORE 2.2 上发送的 Http.WinHttpException。收到的消息是意外的或格式错误
- gcc - 如何告诉 MOC(QT) 排除与 gcc 相关的包含以避免出现以下问题:“std”处的解析错误?
- javascript - 你好。为什么不应用“不显示”
- javascript - 为什么静音播放时会出现音频错误
- python - Python:字符串到受控词汇
- visual-studio-code - 退格键和箭头在 windows10 中的 VS Code 的 Bash 终端上不起作用
- c++ - C++中的右移转换