Node.js 从nodejs中的文件读取并显示它

Node.js 从nodejs中的文件读取并显示它,node.js,heroku,github,Node.js,Heroku,Github,当我在本地运行nodejs代码时,它工作得很好。我得到了所需的输出。 我的代码: 在本地运行时 index.html包含“来自index.html的Hello World”,并且位于同一目录中 问题:当我尝试在heroku上部署web.js(包含与上面相同的代码)时,它似乎不起作用。 我希望在heroku上部署时显示“helloworld from index.html” web.js在我的 执行以下命令 git推送heroku主机后 以下是heroku URL显示的内容 背景:我

当我在本地运行nodejs代码时,它工作得很好。我得到了所需的输出。

我的代码:

在本地运行时

  • index.html包含“来自index.html的Hello World”,并且位于同一目录中
问题:
当我尝试在heroku上部署web.js(包含与上面相同的代码)时,它似乎不起作用。
我希望在heroku上部署时显示“helloworld from index.html”

  • web.js在我的
执行以下命令

git推送heroku主机后

以下是heroku URL显示的内容

背景:我使用的是AWS Ubuntu 12.04,我的github存储库包含所需的web.js文件。我在用Cygwin

有什么可能是错的。我是nodejs的新手,所以我觉得我缺少一些非常基本的东西。如果你是专家,请善意地回答这个愚蠢的问题。我花了一整晚的时间想弄明白。
当部署到Heroku上时,我只想从index.html文件中读取并显示它在“”上包含的文本。

您正在尝试引用文件
index.html
,并使用相对路径。这在heroku上可能不起作用,它将尝试从其他地方加载文件

因此,您想要的是相对于您的app加载它。js是:

fs.readFile(path.join(process.cwd(), 'index.html'), function(err, data) {
它所能做的(你的代码)就是用控制台记录你的东西。虽然并没有http服务器和任何东西,但您正试图通过浏览器访问它。服务器没有响应


请阅读此答案,以了解如何通过http发送文件:

您是否阅读并尝试了for Node.js?您没有提供任何日志,因此很难诊断您的问题,但您的最后一个代码段有一个明显的问题-它侦听端口8080。您应该听听Heroku提供给您的端口号(再次查看文档),使用类似这样的方法检索它
process.env.PORT

我是nodejs的新手,这就是您的意思吗<代码>var http=require('http');var fs=要求(“fs”);http.createServer(函数(请求,响应){fs.readFile(path.join(process.cwd(),'index.html')、函数(err,data){if(err)return console.log(err);console.log(data.toString());}).listen(8080);}我不明白如何使用http服务器。最后是什么问题?问题是我的端口设置为8080,而不是
process.env.port
fs.readFile(path.join(process.cwd(), 'index.html'), function(err, data) {