2017-09-24 78 views
0

我有一个Node MongoDB应用程序,我试图部署到heroku。我在我的应用程序中添加了mongolab,但我仍然遇到“应用程序错误”。Heroku - 无法部署MongoDB节点应用程序

这是我在GitHub上的应用程序:GitHub

这里是我的app.js:

var express = require('express'); 
var bodyParser = require('body-parser'); 
var mongoose = require('mongoose'); 
var session = require('express-session'); 
var MongoStore = require('connect-mongo')(session); 
var app = express(); 

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

mongoose.connect(process.env.MONGOLAB_URI || 'mongodb://localhost/foobar'); 

// mongodb connection 
mongoose.connect("mongodb://localhost:27017/pingpong"); 
var db = mongoose.connection; 
// mongo error 
db.on('error', console.error.bind(console, 'connection error:')); 


// use sessions for tracking logins 
app.use(session({ 
    secret: 'treehouse loves you', 
    resave: true, 
    saveUninitialized: false, 
    store: new MongoStore({ 
    mongooseConnection: db 
    }) 
})); 

// make user ID available in templates 
app.use(function (req, res, next) { 
    res.locals.currentUser = req.session.userId; 
    next(); 
}); 

// parse incoming requests 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 

// serve static files from /public 
app.use(express.static(__dirname + '/public')); 

// view engine setup 
app.set('view engine', 'pug'); 
app.set('views', __dirname + '/views'); 

// include routes 
var routes = require('./routes/index'); 
app.use('/', routes); 

// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
    var err = new Error('File Not Found'); 
    err.status = 404; 
    next(err); 
}); 

// error handler 
// define as the last app.use callback 
app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
    message: err.message, 
    error: {} 
    }); 
}); 

// listen on port 3000 
app.listen(3000, function() { 
    console.log('Express app listening on port 3000'); 
}); 


In addition, here are my heroku logs: 

2017-09-24T18:50:56.086372+00:00 app[web.1]: message: 'failed to connect to server [localhost:27017] on first connect [MongoError: connect ECONNREFUSED 127.0.0.1:27017]' } 
2017-09-24T18:50:56.086371+00:00 app[web.1]: name: 'MongoError', 

这是我尝试部署Heroku的链接:Heroku App

我跟随以下步骤:

  • heroku登录
  • Heroku的应用程序:创建小姐乒乓
  • Heroku的插件:创建mongolab
  • 的Heroku的git:远程-a小姐乒乓
  • 混帐推Heroku的主
  • Heroku的开放

如果任何人有任何想法如何解决这个问题,我真的很感激它!

回答

0

运行heroku config并检查MONGOLAB_URI是否为正在配置的变量。

我也有类似的问题,当我检查heroku config我发现,这是一个由Heroku的设置MongoDB的URI是MONGODB_URI和NOT MONGOLAB_URI