我已经使用Node&Express设置了服务器。除GET /外,所有路由均有效。它没有显示我发送的文件,而是始终显示index.html(也在公共文件夹中)。如果我将index.html重命名为其他名称或将其删除,则我的GET /路由确实有效。

const publicPath = path.join(__dirname, '../public');

app.use(express.static(publicPath));

app.get('/', (req, res) => {
    res.sendFile(publicPath + '/login-register.html');
});


有没有办法抑制index.html的自动呈现?

编辑:可能有用的是,在控制台和Chrome开发工具中都没有出现错误。

最佳答案

发生这种情况是因为static中间件与/路由匹配,因为您在目录中有一个index.html文件,并将该文件发送到浏览器。第二个中间件功能永远不会运行,因为/路由已匹配。如果您切换中间件函数声明的顺序,则它应以您期望的方式工作。

app.get('/', (req, res) => {
  res.sendFile(publicPath + '/login-register.html');
});

app.use(express.static(publicPath));

09-20 23:07