【问题标题】:how to run / execute app deployed on heroku如何运行/执行部署在heroku上的应用程序
【发布时间】: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


【解决方案1】:

你可以试试这个替换评论(//在这里写代码)并尝试请求url:

var http = require('http'); 
 http.createServer(function (req, res) {
   // write the code here if it needs to execute every time
   res.writeHead(200, {'Content-Type': 'text/plain'});
   res.end("this is a test page");
 }).listen(process.env.PORT);

【讨论】:

  • 你是对的人。现在它正在工作,但是有一个问题。我放在那里的代码是在数据库中插入两条记录。当我在 Firefox 中运行它时,它会准确插入两条记录,但是当我在 chrome 中运行该应用程序时,它会插入四条记录。你能帮忙吗?
  • 能否请您将您已替换为评论的代码,这对我有帮助....
猜你喜欢
  • 2022-07-15
  • 1970-01-01
  • 2023-03-27
  • 2021-03-18
  • 2016-11-29
  • 2016-07-02
  • 1970-01-01
  • 2020-12-09
  • 2023-01-20
相关资源
最近更新 更多