我遇到ExpressJS路线问题,获取请求的回报是什么。
我的代码:
const express = require('express');
const app = express();
var path = require('path');
const port = 80;
app.get('/results/:timestamp', function (req, res) {
var filepath = path.join(__dirname + '/../testresults/' + req.params.timestamp + '/report.html');
res.sendFile(filepath);
});
app.listen(port, () => console.log('Listening on port ' + port + '!'));
这就是内容文件夹的样子 folder with files
问题如下: 当我输入url时: http://localhost/results/2017-12-20-16.3 expressJS正在尝试返回路径文件: ' [...] \ testresults \ app.js \ report.html'
如果我更改了代码' report.html'对于该文件夹中的任何其他文件,它从现有路径发送正确的文件。但是当我试图返回任何" xyz.html"文件它试图从" testresults / app.js / zyx.html"发送文件。而不是" testresults / 2017-12-20-16.3 / xyz.html"。
因此,当我尝试发送任何.html文件时,它会用" app.js"替换我的timestamp参数。但是当我尝试发送任何其他扩展时,它会正常发送它。这很奇怪。
我老实说不知道为什么这段代码会这样。我根本不理解它。这段代码几周前运作良好。现在就是这样。 知道如何解决这个奇怪的问题吗?