首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mongoose无法连接到Mlab

Mongoose无法连接到Mlab
EN

Stack Overflow用户
提问于 2019-12-19 05:21:35
回答 1查看 86关注 0票数 1

我正在尝试从节点应用程序连接到mlab数据库,但当我尝试连接时,它就挂起了。它还在错误中显示默认端口27017,即使我的mlab数据库使用不同的端口。

我在其他项目中使用过mlab和mongoose,从来没有收到过这个错误,所以我非常困惑。

错误:

代码语言:javascript
运行
复制
{ MongoTimeoutError: Server selection timed out after 30000 ms
    at Timeout.setTimeout [as _onTimeout] (/Users/<user>/playground/mongo-test/node_modules/mongodb/lib/core/sdam/server_selection.js:308:9)
    at ontimeout (timers.js:475:11)
    at tryOnTimeout (timers.js:310:5)
    at Timer.listOnTimeout (timers.js:270:5)
  name: 'MongoTimeoutError',
  reason:
   { Error: getaddrinfo ENOTFOUND <my username> <my username>:27017
    at errnoException (dns.js:50:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
     name: 'MongoNetworkError',
     [Symbol(mongoErrorContextSymbol)]: {} },
  [Symbol(mongoErrorContextSymbol)]: {} }

我的代码:

代码语言:javascript
运行
复制
const express = require('express');
const app = express();
const mongoose = require('mongoose');

const PORT = process.env.PORT || 8000;

mongoose.connect('mongodb://<my username>:<my password>@<theservername>.mlab.com:59577/express-chat-dev', { useNewUrlParser: true, useUnifiedTopology: true }, (err) => {
    console.log('[hello]');
    if (err) {
        console.error(err);
    } else {
        console.log('[mongo connected]');
    }
});

app.listen(PORT, () => {
    console.log(`Express running on port ${PORT}`)
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-19 05:53:17

因此,我不确定这是否是API更改,但是将我的凭据移动到options对象解决了我的问题。

代码语言:javascript
运行
复制
const express = require('express');
const app = express();
const mongoose = require('mongoose');

const PORT = process.env.PORT || 8000;

const options = {
  user: <username>, 
  pass: <password>, 
  useNewUrlParser: true, 
  useUnifiedTopology: true
}

mongoose.connect('mongodb://<theservername>.mlab.com:59577/express-chat-dev', options, (err) => {
    console.log('[hello]');
    if (err) {
        console.error(err);
    } else {
        console.log('[mongo connected]');
    }
});

app.listen(PORT, () => {
    console.log(`Express running on port ${PORT}`)
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59400145

复制
相关文章

相似问题

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