Nodejs Mongoose错误:getaddrinfo ENOTFOUND undefined undefined:27017

我正试图从使用本地MongoB切换到mongoose,并有一些麻烦。

连接到数据库,因为我以前工作得很好:

var db; var passDb = function(req, res, next) { if (!db) { mongo.connect(process.env.MONGOLAB_URI, function(err, database) { if (err) throw err; db = database; req.db = db; next(); }); } else { req.db = db; next(); } } 

但是我现在要做的方式现在会抛出一个错误:

 var mongoose = require('mongoose'); var Poll = require('./app/models/poll'); mongoose.connect(process.env.MONGOLAB_URI); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function() { // we're connected! }); 

错误:

 connection error: { [MongoError: getaddrinfo ENOTFOUND undefined undefined:27017 ] name: 'MongoError', message: 'getaddrinfo ENOTFOUND undefined undefined:27017' } 

任何想法是什么造成这个?

编辑:它的作品,当我直接使用数据库的uri,但不是当我使用环境variables。 我已经检查和三重检查,一切都input正确,它拒绝使用环境variables,我必须把它直接在代码中:S

好吧,我想出了我的错误,我在连接到数据库之前调用require('dotenv').load(); 。 谜团已揭开!

mongoose.connect(process.env.MONGOLAB_URI); 现在的作品!