我正在尝试使用express
服务器中的NodeJS
发送文件。在localhost上它可以工作,但当我将我的应用程序推送到OpenShift时,我有一个错误:Internal Server Error
。
代码:
var path = require('path');
app.get('/load', function(req, res) {
//res.send("TRY");
res.sendFile(path.resolve('bg95.png'));
});
如果我尝试发送简单文本,那没关系。那么,coulb是问题以及如何解决它?
答案 0 :(得分:0)
问题很可能是因为您在不同的工作目录中运行。除非您提供path.resolve
参数,否则from
将使用当前工作目录。尝试更换:
res.sendFile(path.resolve('bg95.png'));
带
res.sendFile(path.join(__dirname, 'bg95.png'));
答案 1 :(得分:0)
我有类似的问题,我的项目文件夹中有一个示例 index.html 文件。我尝试了res.sendFile('./dashboard.html')
,res.sendFile('./app-root/repo/dashboard.html')
等等,但没有一个有效。
确保您的快速版本 v4.8.0 或更高版本。然后我找到了下面提到的链接,并使用了
res.sendFile(path.join(__dirname + '/index.html'));
其中 __ dirname ,我相信它为我们提供了OpenShift的工作路径文件夹。这有助于我显示页面。
https://scotch.io/tutorials/use-expressjs-to-deliver-html-files
查看此链接。关于如何使用它的简单演示,如果你遵循它,你将能够使它工作。 ;)
答案 2 :(得分:0)
您应该更新dependecies中的快速版本。像那样:
"dependencies": {
"express": "4.10.2",
"socket.io": "1.3.7"
}
似乎问题出在快递版本上,不支持sendFile。