【发布时间】:2016-09-22 22:04:43
【问题描述】:
我是 node.js 和 heroku 的新手。 通过遵循文档和一些教程,我已成功在 heroku 上部署了我的应用程序。
我面临的问题是我不知道如何在 heroku 上运行已部署的应用程序。在阅读了许多教程之后,我仍然不清楚。
当我运行命令时
$ git add .
$ git commit -am "make it better"
$ git push heroku master
从本地命令行,它执行脚本。但是当我从 heroku 帐户单击打开的应用程序时,它不会执行所有文件。
我正在运行 1 个网络测功机,heroku 显示我的网络测功机执行以下命令
web node build/server.js
server.js 文件包含以下代码
require('./routes/main.routes.js');
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end("this is a test page");
}).listen(process.env.PORT);
当我从 heroku 点击打开应用程序时,它会在浏览器中打开应用程序并显示消息this is a test page
它不运行main.routes.js 文件。
但是当我点击重新启动所有 Dynos 时,main.routes.js 文件也会被执行。当我单击打开我的应用程序或在浏览器窗口中刷新它时,我希望应用程序执行main.routes.js 文件。
重新启动所有 Dynos 是执行脚本的唯一方法吗?还是我做错了什么?
任何帮助将不胜感激。
【问题讨论】:
-
您是否在命令提示符下尝试
heroku run? -
@DhananjayaKuppu 是的,但它说,run 不是有效的 heroku 命令
-
试试
heroku apps:info它应该显示您的应用程序的网址..您需要在浏览器中使用的网址.... -
@DhananjayaKuppu 相同的结果。要求('./routes/main.routes.js');该文件不执行。其他一切都很好。并且打开的应用链接会打开相同的 URL。
-
server.js 将只执行一次,因此您的 routes.js 也将只运行一次。之后它会在指定的端口上侦听,并且对于每个新请求只会执行回调函数。但是,如果您要为每个请求执行任何代码,则应将其放入回调函数中..
标签: javascript node.js heroku deployment dyno