2017-05-01 85 views
0

我將我的應用程序部署到heroku沒有問題。我能夠在localhost:5000上運行heroku local web,它工作正常。當我去到網絡dyno地址時,它說應用程序錯誤。我檢查了該網站的日誌,它說:Heroku Node.js應用程序「進程退出狀態1」和錯誤h10

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}`); 
 
});

我不知道發生了什麼,特別是因爲它在本地主機和部署上運行良好。任何幫助表示讚賞。

回答

0

檢查環境變量DB_URI通過調用heroku config和看到的是上市的。該錯誤表明您的連接被拒絕,所以我的猜測是沒有配置mongo數據庫或環境變量未在heroku應用程序上下文中設置。

0

我有完全相同的問題。我沒有使用蒙戈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' 

我意識到我必須安裝快車,所以我跑:

npm install express 
git push heroku master 
heroku open 

和它的工作。 希望它會爲你工作!

相關問題