繁体   English   中英

Heroku Node.js 应用程序“进程以状态 1 退出”和错误 h10

[英]Heroku Node.js app “Process exited with status 1” and error h10

我将我的应用程序部署到 heroku 很好,没有任何问题。 我能够在 localhost:5000 上运行heroku local web并且它工作正常。 当我去web dyno地址时,它说应用程序错误。 我检查了该站点的日志,它说:

 2017-05-01T02:52:30.980217+00:00 app[web.1]:     at Connection.<anonymous> (/app/node_modules/mongodb-core/lib/connection/pool.js:274:12)
 2017-05-01T02:52:30.980218+00:00 app[web.1]:     at emitTwo (events.js:106:13)
 2017-05-01T02:52:30.980218+00:00 app[web.1]:     at Socket.<anonymous> (/app/node_modules/mongodb-core/lib/connection/connection.js:177:49)
 2017-05-01T02:52:30.980218+00:00 app[web.1]:     at Connection.emit (events.js:191:7)
 2017-05-01T02:52:30.980219+00:00 app[web.1]:     at emitOne (events.js:96:13)
 2017-05-01T02:52:30.980220+00:00 app[web.1]:     at Socket.emit (events.js:188:7)
 2017-05-01T02:52:30.980221+00:00 app[web.1]:     at process._tickCallback (internal/process/next_tick.js:104:9)
 2017-05-01T02:52:31.040828+00:00 heroku[web.1]: State changed from starting to crashed
 2017-05-01T02:52:31.029211+00:00 heroku[web.1]: Process exited with status 1
 2017-05-01T02:52:40.638415+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=room111-thoughts.herokuapp.com request_id=91b591cf-3d8d-4d94-8caf-7b1b868b088b fwd="108.221.62.78" dyno= connect= service= status=503 bytes= protocol=https
 2017-05-01T02:52:41.600924+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=room111-thoughts.herokuapp.com request_id=c8f6c2d3-dc38-4e65-9a20-581910f42b36 fwd="108.221.62.78" dyno= connect= service= status=503 bytes= protocol=https

我正在使用 node.js 和 server.js(初始化脚本)如下

 // load environment variables require('dotenv').config(); // grab our dependencies const express = require('express'), app = express(), port = process.env.PORT || 8080, expressLayouts = require('express-ejs-layouts'), mongoose = require('mongoose'), bodyParser = require('body-parser'), session = require('express-session'), cookieParser = require('cookie-parser'), flash = require('connect-flash'), expressValidator = require('express-validator'); // configure our application =================== // set sessions and cookie parser app.use(cookieParser()); app.use(session({ secret: process.env.SECRET, cookie: { maxAge: 60000 }, resave: false, // forces the session to be saved back to the store saveUninitialized: false // dont save unmodified })); app.use(flash()); // tell express where to look for static assets app.use(express.static(__dirname + '/public')); // set ejs as our templating engine app.set('view engine', 'ejs'); app.use(expressLayouts); // connect to our database mongoose.connect(process.env.DB_URI); // use body parser to grab info from a form app.use(bodyParser.urlencoded({ extended: true })); app.use(expressValidator()); // set the routes ============================= app.use(require('./app/routes')); // start our server =========================== app.listen(port, () => { console.log(`App listening on http://localhost:${port}`); });

我不知道发生了什么,特别是因为它在本地主机和部署上运行良好。 任何帮助表示赞赏。

我有同样的问题。 我没有使用 mongo db 但错误是一样的:

2018-01-23T09:30:10.806568+00:00 heroku[web.1]: Process exited with status 1
2018-01-23T09:30:10.823360+00:00 heroku[web.1]: State changed from starting to crashed
2018-01-23T09:30:32.001596+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/"....

该应用程序在本地主机上完美运行,但在部署到 heroku 时崩溃了。 Heroku 网站日志页面根本没有帮助,所以我通过命令行在本地进行了尝试: heroku logs --tail并且出现了许多未在网站中显示的日志。 那些日志说:

2018-01-23T09:30:09.431324+00:00 heroku[web.1]: Starting process with command `node server.js`
2018-01-23T09:30:10.771449+00:00 app[web.1]: module.js:540
2018-01-23T09:30:10.771465+00:00 app[web.1]:     throw err;
2018-01-23T09:30:10.771466+00:00 app[web.1]:     ^
2018-01-23T09:30:10.771468+00:00 app[web.1]:
2018-01-23T09:30:10.771470+00:00 app[web.1]:     at Function.Module._resolveFilename (module.js:538:15)
2018-01-23T09:30:10.771469+00:00 app[web.1]: Error: Cannot find module 'express'

我意识到我必须安装 express,所以我运行:

npm install express
git push heroku master
heroku open 

它奏效了。 希望它也适用于你!!

通过调用heroku config并查看为其列出的内容来检查环境变量 DB_URI。 该错误表明您的连接被拒绝,所以我的猜测是没有配置 mongo db 或者没有在 heroku 应用程序上下文中设置环境变量。

对我来说,上面关于环境变量的答案就是它。 我的与变量 MONGODB_URI 未在 heroku 中设置为环境变量有关,并且运行 heroku 配置时返回的 cli 中没有变量。

修复程序正在运行:heroku addons:create mongolab:sandbox

如果需要 heroku 推送,那么 heroku 配置现在应该显示您的 .env 变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM