我知道这很愚蠢,但我不知道express.js为什么要这么做,所以我在GET
请求中发送了一个HTML文件
const express = require("express");
require('dotenv').config()
const app = express();
const PORT = process.env.PORT || 5000;
app.use(express.static(__dirname + "/public"));
app.get("/", (req, res) => {
// console.log("Hello");
// res.sendFile(__dirname + "/public/index2.html");
})
app.listen(PORT, () => {
console.log("Server started on port: " + PORT)
})
现在我发送的是index.html
而不是index2.html
,但它仍然发送index.html
文件,甚至console.log
也没有打印。
有人能告诉我为什么会这样吗?
2条答案
按热度按时间dgtucam11#
“快速”按顺序一次**测试一条路由,**直到有一条匹配。
您的第一条路由(即静态路由)匹配!
如果您希望显式端点优先于静态端点,那么请将静态路由放在最后。
mklgxw1f2#
这是因为您启用了为整个应用程序提供静态文件。这意味着expess将首先从公共文件夹路由文件,您有
index.html
对应/
。您可以为静态设置一个特定的路径,如下所示:
更多信息:https://expressjs.com/en/starter/static-files.html