NodeJS 未将Express.js正确文件作为响应发送

5anewei6  于 2023-03-08  发布在  Node.js
关注(0)|答案(2)|浏览(158)

我知道这很愚蠢,但我不知道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也没有打印。
有人能告诉我为什么会这样吗?

dgtucam1

dgtucam11#

“快速”按顺序一次**测试一条路由,**直到有一条匹配。

app.use(express.static(__dirname + "/public"));

您的第一条路由(即静态路由)匹配!
如果您希望显式端点优先于静态端点,那么请将静态路由放在最后

mklgxw1f

mklgxw1f2#

这是因为您启用了为整个应用程序提供静态文件。这意味着expess将首先从公共文件夹路由文件,您有index.html对应/
您可以为静态设置一个特定的路径,如下所示:

app.use('/static', express.static(__dirname + '/public'));

更多信息:https://expressjs.com/en/starter/static-files.html

相关问题