无法使用res.sendFile将文件发送到OpenShift

时间:2016-03-27 17:21:49

标签: javascript node.js openshift

我正在尝试使用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是问题以及如何解决它?

3 个答案:

答案 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。