node.js – 即使我的路由到另一个文件,express也提供index.html

前端之家收集整理的这篇文章主要介绍了node.js – 即使我的路由到另一个文件,express也提供index.html前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个公共目录,其中包含index.html和index-08.html文件.

使用下面的代码,我希望能够提供index-08.html.但是,index.html通过localhost:3000的浏览器请求提供服务

app.use(express.static(path.join(__dirname,'public')));
app.get('/',function(req,res) {
    res.sendFile('public/index-08.html');
});

但是,如果我将index.html的文件名更改为其他名称,比如not-index.html,则会提供正确的文件index-08.html.

你能帮我理解为什么会这样吗?

解决方法

这是因为您在app.get(‘/’)之前声明了app.use(express.static). Express按照声明的顺序检查路由,并且由于index.html是静态中间件使用的默认文件名,因此它显示index.html内容.

解决这个问题,您可以在app.get(‘/’)之后放置app.use(express.static),或者将static second参数的index属性设置为非现有文件(false似乎不起作用):

app.use(express.static(path.join(__dirname,'public'),{index: '_'}));

猜你在找的Node.js相关文章