首先 Heroku 部署失败‘ error code = H10’

我将我的应用部署到 Heroku,它是一个 node.js + Express + socket.io 应用,这是 package.json文件

{
"name": "game_test",
"author": "Ilya",
"description": "A test app for our board game",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app"
},
"dependencies": {
"express": "3.0.6",
"jade": "*",
"socket.io" : "*"
},
"engines": {
"node": "0.8.14"
}
}

这是我得到的日志:

heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=game-test-1.herokuapp.com fwd=37.26.146.185 dyno= queue= wait= connect= service= status=503 bytes=
heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=game-test-1.herokuapp.com fwd=37.26.146.185 dyno= queue= wait= connect= service= status=503 bytes=

这是什么意思?

266647 次浏览

我在这里找到了解决方案: Heroku + node.js 错误(Web 进程在启动后60秒内未能绑定到 $PORT)

在我的情况下,我的应用程序崩溃,因为我很难设置的 PORT,而不是使用端口,heroku 动态设置,可以访问与 process.env.PORT

app.listen(process.env.PORT || 3000, function(){
console.log("Express server listening on port %d in %s mode", this.address().port, app.settings.env);
});

还要检查数据库连接。我忘了改变我的数据库连接从本地主机和这个崩溃了我的应用程序一旦它被推到 heroku。

我的应用程序也有类似的问题,我在数据库迁移之后遇到了这个问题,在尝试了很多选项之后,帮助我解决这个问题的是:

heroku restart

(使用 Heroku 工具带)

在我的例子中,我发现了相同的错误,因为在我的本地机器上有 node 和 npm 的版本差异,并且是在 package.json 版本中定义的。

"engines": {
"node": "0.8",
"npm": "1.2.x"
}

当我检查使用

node --version : v0.10.41
npm --version : 1.4.29

当我更新我的软件包时

 "engines": {
"node": "0.10.41",
"npm": "1.4.29"
}

它工作得很好:)

在我的情况下,将 process.env.PORT || 3000添加到我的 http 服务器脚本,解决。 我的 heroku 日志报告“ H20”错误和503 http 状态。

我得到了相同的上述错误作为“应用程序崩溃”和 H10错误和 heroku 应用程序日志没有显示太多信息相关的错误 msg 的原因。然后,我在 heroku 中重新启动 dynos,然后在我的设置中的 index.js 文件中显示了额外的花括号错误。这个问题得到解决,一旦它被删除,并重新部署在 heroku 应用程序。

在我自己的例子中,我得到了这个错误,因为我拒绝向我的节点 js 应用程序添加一个 Procfile,而我的“ main”: “ app.js”最初指向另一个 js 文件作为 main。所以做这些改变可以帮我修好它

在我的例子中,我的 Procfile 指向了错误的文件(我以前使用过的 bot.js) ,所以一旦我更新了它,错误就消失了。

我面临着同样的问题,以上的答案都没有帮助到我。 我所做的就是逃跑:

node --version

在 package.json 中添加带有节点版本的 Engine 部分:

{
"name": "myapp",
"description": "a really cool app",
"version": "1.0.0",
"engines": {
"node": "6.11.1"
}
}

密码包含了一个% 为我破解了它。

我打错字了

const PORT = process.env.PORT||'8080';

曾经是

const PORT = process.env.port||'8080';

在我的例子中,我忘记为部署设置数据库 env。 您可以通过这个命令设置 env (我在 MongoDB 服务器上使用 mLab)

Heroku config: set MONGO _ URI = ‘ mongob://address’

对我来说,它是 Package.json,它是空的从依赖关系,即使我认为我没有安装它们。.所以最后我不得不用—— save 选项重新安装它们,并验证它们是否被添加到 package.json 中。.然后再按一次,就成功了。

我的端口设置为 config.httpPort,解析为 80:

const PORT = process.env.PORT || config.httpPort;


app.listen(PORT, ...)

非常感谢,昨晚浪费了我很多时间。

我有这个问题,唯一的问题是我的个人资料是这样的

web : node index.js

然后我变成了

web:node index.js

唯一的问题是空间

H10错误代码可能意味着许多不同的东西。对我来说,第一次是因为我不知道 Heroku 与 Sqlite3不兼容,第二次是因为我不小心推出了一个更新,它使用的是正在开发和生产中的 Google 分析。

旧线程,但对我来说,我没有设置我的 .env变量在 Heroku 控制台。

我用的是抛出异常的 body-Parser

const bodyParser = require('body-Parser')
//Bodyparser Middleware
app.use(bodyparser.json())

而不是使用

    //Bodyparser Middleware
app.use(express.json())

这解决了我的问题

如果您像我一样通过 nodemon在本地启动节点服务器,并且它在本地工作,请尝试 npm start。没有恶魔告诉我没有错误,但 npm 开始告诉我很多他们在一个可以理解的方式,然后我可以解决他们通过下面的其他职位在这里。我希望这对某些人有帮助。

我想在这里注册什么是我的解决方案,这个错误是一个简单的文件没有更新到 Github。

我有一个完整的堆栈项目,我的文件结构化为后端的根目录和前端的客户端(我使用的是 React.js)。归根结底,我只是错误地将客户端文件夹推到了 Github 上,所有的修改都有错误(在 index.js 的对象实例中缺少一个逗号) ,而且没有在后端进行更新。由于 Heroku 从 Github Repository 获取所有更新,我无法访问我的服务器,错误仍然存在。然后,我所要做的就是提交并推送到根目录,更新项目的所有更改,然后一切都恢复正常。

在我的例子中,在 package.json文件的脚本部分没有 start 命令。 当我使用 npm init创建 package.json文件时,我没有创建 start script 命令。 于是我转到 package.json文件,在脚本下添加了一个新条目:

 "scripts": {
"start": "node index.js"
},

保存并上传到 Heroku 成功了

在使用 hapi18时,我发现删除“ host”字段并将端口设置为:

port: process.env.PORT || 5000成功了。

在我的情况下,我有 代码 = H10状态 = 503,因为我 简介:

web: node build/server.js

我在 。吉蒂诺尔中加入了 /建造

同样的错误我纠结了好几个小时,但我还是解决了。我错误地将 multer 和 aws-sdk 作为 devDependency 安装,而不仅仅是依赖项。 因此,任何有相同错误的人,只需再次检查 package.json 文件。

另外,还有一个关于 package.json 中引擎属性的小技巧。

enter code here
//The greater or equal operators will make sure that you use the right node
//version
//even if your current node is greater version than npm node


"engines": {
"node": ">= 0.8.14"
},




//insted of
"engines": {
"node": "0.8.14"
}

旧线程,但是我通过将 PORT 常量设置为 process.env.PORT | | 来修复这个问题

出于某种奇怪的原因,它想先搜索 Env。

我在部署 pythonDjango 框架时发生了这个错误,因为我忘记将应用程序名称 web: gunicorn plaindjango.wsgi:application --log-file -而不是 plaindjango

对我来说,我把不必要的东西分成不同的文件夹。我运行的是阴谋破折号,我把我的 ProcfilePipfile(并锁定)放在一起,但是与我的应用程序的其他功能(run.pyapp.py,所使用的页面的实际内容是在一个子文件夹中)是分开的。因此,将大部分内容结合在一起,修复了我的 H10错误

我的 start命令是 env-cmd -f ./config/prod.env node index.js

改成: node index.js后就修好了。

我也有同样的问题,问题是我的个人资料是这样的:

web: gunicorn__init__:app

注意,在上面的代码中,枪角兽(咒语)之间没有空格

而不是 web: gunicorn __init__:app

// PORT
const PORT = process.env.PORT || 8081;


// Listen on port 8081
app.listen(PORT, () =>
console.log(`Application is listening on port ${PORT}!`)
);

PORT 将处理任何需要的端口,例如,Heroku、 AWS 等。

在我的例子中,这是由堆内存限制造成的。

  1. 只需将一些依赖项添加到 dev 依赖项对象。
  2. 删除未使用的模块。

您可以使用 heroku restart看到确切的错误,如果它是内存限制,那么升级您的 heroku 帐户。

在我的例子中,通过改变顺序,问题得到了解决: 来自: Listen (2000 | | process.env.PORT) ; 致: Listen (process.env.PORT | | 2000) ;

只是得到了这个错误,并解决了它。对于任何尝试过其他方法但失败的人,请检查您的 Procfile 路径。我的服务器在后端文件夹中,但我只输入了 web: node server.js。在将其更改为 web: node backend/server.js 后,我解决了这个错误

我也面临同样的问题(H10GET =/)。 原来解决方案很简单,我在 package.json 文件中编辑了一行代码。 来自:

 "scripts": {
"start": "nodemon app.js"

致:

 "scripts": {
"start": "node app.js"