mongoose 到 mlab 连接问题:UnhandledPromiseRejectionWarning: Unhandled promise rejection

mongoose to mlab connection issues : UnhandledPromiseRejectionWarning: Unhandled promise rejection

const express = require('express');
const app = express();
const mongoose = require('mongoose');
require('./models/users');
require('./services/passport');
const authRoutes = require('./routes/authRoutes');
const Keys = require('./config/dev');

authRoutes(app);

mongoose.connect(Keys.MONGOOSE_URI);

const port = process.env.PORT || 5000;
app.listen(port);

我有一个 node express 应用程序,我正在尝试使用 mongoose 连接到 mlab 数据库。我收到以下异常:

UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): MongoNetworkError: failed to connect to server [ds111598.mlab.com:11598] otworkError: connect ECONNREFUSED 35.168.9.109:11598]

我正在使用的技术堆栈:

"mongoose": "^4.11.1",
node: 6.11.1
npm: 4.6.1

我也尝试过使用最新的 mongoose 版本,但仍然是同样的问题。我因此被困住了。有人可以帮忙吗?

谢谢

如果你是在公司代理下,你必须要出来否则你可以查看我的代码。

 const options = {
    useMongoClient: true,
    autoIndex: false, // Don't build indexes
    reconnectTries: 100, // Never stop trying to reconnect
    reconnectInterval: 500, // Reconnect every 500ms
    poolSize: 10, // Maintain up to 10 socket connections
    // If not connected, return errors immediately rather than waiting for reconnect
    bufferMaxEntries: 0
  };
mongoose.connect('mongodb://user:xxxxxx@dsxxxx.mlab.com:667799/DB_NAME',options).then(
  ()=>{
    console.log("connected to mongoDB")},
 (err)=>{
     console.log("err",err);
}

)

解决方案

我刚刚 运行 遇到了同样的问题,并花了几分钟尝试调试并获得成功的解决方法。

但我很容易就解决了它。

获取身份验证错误的问题是因为尚未在 mlab 上创建一个将远程连接到 mongo 的用户。

在 mlab 上成功创建数据库并不是返回文本编辑器以通过 mlab 页面上提供的 url 连接到 mongo 之前的最后一步。

必须在位于数据库详细信息页面的 mlab 上的 'USERS' 选项卡下创建用户。

添加凭据然后创建用户,最后在mlab提供的mongo中添加这些凭据url.

哇哦!您已连接。

创建一个新用户,更重要的是,确保用户密码仅包含字母数字。 No special characters like . # ,e.t.c

我通过不使用“.”解决了这个问题。在数据库用户名中。这不清楚,但它解决了我的问题。