Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t使用res.sendFile将文件发送到OpenShift_Javascript_Node.js_Openshift - Fatal编程技术网

Javascript Can';t使用res.sendFile将文件发送到OpenShift

Javascript Can';t使用res.sendFile将文件发送到OpenShift,javascript,node.js,openshift,Javascript,Node.js,Openshift,我正在尝试使用NodeJS服务器中的express发送文件。在本地主机上,它可以工作,但当我将应用程序推到OpenShift时,出现了一个错误:内部服务器错误 代码: 如果我试着发送简单的文本,就可以了。那么,问题出在哪里以及如何解决呢?问题很可能是因为您运行在不同的工作目录中path.resolve将使用当前工作目录,除非您提供了一个from参数。尝试替换: res.sendFile(path.resolve('bg95.png')); 与 我有一个类似的问题,我的项目文件夹中有一个示例in

我正在尝试使用
NodeJS
服务器中的
express
发送文件。在本地主机上,它可以工作,但当我将应用程序推到OpenShift时,出现了一个错误:
内部服务器错误

代码:


如果我试着发送简单的文本,就可以了。那么,问题出在哪里以及如何解决呢?

问题很可能是因为您运行在不同的工作目录中
path.resolve
将使用当前工作目录,除非您提供了一个
from
参数。尝试替换:

res.sendFile(path.resolve('bg95.png'));


我有一个类似的问题,我的项目文件夹中有一个示例index.html文件。我尝试了
res.sendFile('./dashboard.html')
res.sendFile('./app root/repo/dashboard.html')
,等等,但都没有成功。 确保您的express版本为v4.8.0或更高版本。然后我找到了下面提到的链接,并使用

res.sendFile(path.join(uu dirname+'/index.html')

其中\uuu dirname,我相信它为我们提供了OpenShift的工作路径文件夹。这有助于我显示页面


查看此链接。一个关于如何使用它的简单演示,如果你遵循它,你将能够使它工作。;)

您应该在Dependences中更新express版本。就像这样:

  "dependencies": {
    "express": "4.10.2",
    "socket.io": "1.3.7"
  }

问题似乎出在不支持sendFile的express版本上

您确定
bg95.png
与您的脚本位于同一目录下吗?如果您在路由处理程序之后添加一个快速错误处理程序(例如
app.use(function(err,req,res,next){console.log(err.stack);next(err);}
),错误会显示什么?@mscdex没有错误…控制台中一切正常。
res.sendFile(path.join(__dirname, 'bg95.png'));
  "dependencies": {
    "express": "4.10.2",
    "socket.io": "1.3.7"
  }