Node.js:简单的应用程序无法在Heroku上运行

时间:2012-10-22 12:52:14

标签: node.js deployment heroku

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

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 个答案:

答案 0 :(得分:34)

你缩放了heroku app吗?

$ heroku ps:scale web=1

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

答案 1 :(得分:22)

更改您的端口

.listen(8888)

.listen(process.env.PORT || 8888)

答案 2 :(得分:2)

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

$ ls
app.js Procfile
$ cat Procfile
web: node app$
$

答案 3 :(得分:1)

我必须做的事情(没有必要扩展或使用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;
    
  4. 为什么......

    1. 显式声明应该执行哪个命令来启动您的应用。 Heroku查找指定过程类型的Procfile

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

    3. Heroku已经为您的应用分配了一个端口并将其添加到env,因此您无法将端口设置为固定数字。

    4. 资源:

      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