10

我编写了一个基本的 node.js 应用程序,并且成功地将它部署在 Heroku 上,没有任何问题。我已经创建了package.jsonProcfile,但是从日志中我看到没有正在运行的进程,因此无法得到任何响应。可能是什么问题呢?

PS:我不想使用Express框架

我的代码:

var http = require("http");

http.createServer(function(request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.write("Hello World");
  response.end();

  console.log("I am working");
}).listen(8888);

我的 package.json:

{
  "name": "node-example",
  "version": "0.0.1",
  "dependencies": {
  },
  "engines": {
    "node": "0.8.x",
    "npm": "1.1.x"
  }
}

日志:

2012-10-22T12:36:58+00:00 heroku[slugc]: Slug compilation started
2012-10-22T12:37:07+00:00 heroku[slugc]: Slug compilation finished
2012-10-22T12:40:55+00:00 heroku[router]: Error H14 (No web processes running) -> GET aqueous-bastion-6914.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
2012-10-22T12:50:44+00:00 heroku[router]: Error H14 (No web processes running) -> GET aqueous-bastion-6914.herokuapp.com/ dyno= queue= wait= service= status=503 bytes=
4

4 回答 4

37

您是否扩展了 heroku 应用程序?

$ heroku ps:scale web=1

这是必需的步骤。这1是您希望为您的应用程序生成的进程数。

于 2012-10-22T13:42:09.717 回答
26

更改您的端口

.listen(8888)

.listen(process.env.PORT || 8888)
于 2012-10-22T14:07:45.830 回答
3

你的 Procfile 里面有什么?它与您的应用名称匹配吗?

$ ls
app.js Procfile
$ cat Procfile
web: node app$
$
于 2012-10-22T14:15:28.757 回答
2

我必须做的事情(不必扩展或使用 Express)..

  1. 在根目录中创建一个 Procfile(一个字面称为 Procfile 的文件,没有扩展名)。
    在 Procfile 中,键入:

    web: node server.js
    
  2. 将脚本和引擎添加到 package.json

    "scripts": {
            "start": "node server.js"
    }
    
    "engines": {
            "node": "8.9.3"
    }
    
  3. 更新 server.js 中的端口

    var port = process.env.PORT || 8080;
    

以及为什么..

  1. 明确声明应该执行什么命令来启动您的应用程序。Heroku 查找指定进程类型的 Procfile

  2. 对于脚本,如果在构建过程中根目录中没有 Procfile,您的 Web 进程将通过运行 npm start 来启动。对于引擎,指定与您正在开发并希望在 Heroku 上使用的运行时相匹配的 Node 版本。

  3. Heroku 已经为您的应用程序分配了一个端口并将其添加到环境中,因此您不能将端口设置为固定数字。

资源:

https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction

https://devcenter.heroku.com/articles/troubleshooting-node-deploys

https://devcenter.heroku.com/articles/deploying-nodejs

于 2018-05-17T07:54:40.250 回答