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);
现在的作品!