所以我有一个快速的应用程序,在 app.js 我有这个:
app.use('/index', function (req, res, next){
res.sendFile(__dirname+'/index.html');
}
app.get('/script.js',function(req,res){
res.sendFile(__dirname+'/public/script.js');
启动服务器并输入 localhost:3000 / index 后,应用程序运行正常,但问题出现了.. 当我将第一个 app.use()功能更改为:
时app.use('/', function (req, res, next){}
这样我就不必在网址中输入索引部分,所有下一个获取请求都会回复 index.html 页面并尝试添加
res.end(); after res.sendFile();
但之后没有其他回复被发送,我该如何解决?
答案 0 :(得分:1)
您的/
路由充当通配符并捕获所有请求,这意味着任何与此路由之前定义的路由不匹配的内容都将被其捕获。你有两个选择:
app.use
更改为app.get
,以便您明确仅匹配/
(并且只能使用GET方法)正如app.use
here的Express.js API文档所述:
路径将匹配任何路径,该路径紧跟其路径后面带有“/”。例如:app.use('/ apple',...)将匹配“/ apple”,“/ apple / images”,“/ apple / images / news”等等。