首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nodejs Mongoose错误: getaddrinfo ENOTFOUND undefined undefined:27017

Nodejs Mongoose错误: getaddrinfo ENOTFOUND undefined undefined:27017
EN

Stack Overflow用户
提问于 2016-03-17 07:05:54
回答 2查看 16.2K关注 0票数 4

我正在尝试从只使用原生mongodb切换到mongoose,并且遇到了一些麻烦。

像我之前所做的那样,连接到数据库可以正常工作:

代码语言:javascript
复制
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();
    }
}

但我现在尝试的方法抛出了一个错误:

代码语言:javascript
复制
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!
});

错误:

代码语言:javascript
复制
connection error: { [MongoError: getaddrinfo ENOTFOUND undefined undefined:27017
]
  name: 'MongoError',
  message: 'getaddrinfo ENOTFOUND undefined undefined:27017' }

你知道是什么原因造成的吗?

编辑:当我直接使用数据库uri时,它可以工作,但当我使用环境变量时,它就不起作用了。我已经检查并反复检查了所有内容都是正确键入的,它拒绝使用环境变量,我必须将其直接放入代码中:S

EN

回答 2

Stack Overflow用户

发布于 2016-03-17 08:15:17

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

mongoose.connect(process.env.MONGOLAB_URI);现在可以工作了!

票数 7
EN

Stack Overflow用户

发布于 2020-03-27 19:27:04

我想您忘记了定义env变量,或者您可能忘记调用服务器上dotenv包的config方法或starter文件config it。

代码语言:javascript
复制
const dotenv = require("dotenv")
dotenv.config()

在您的监视文件或启动器上...然后使用process.env.VARIABLE或测试mongo连接,使用简单的字符串url,如下所示:

mongodb://localhost:27017/database_name

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36048655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档