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: '_'}));

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...