【问题标题】:MongoDB connection to remote serverMongoDB 连接到远程服务器
【发布时间】:2018-10-22 13:52:24
【问题描述】:

我正在使用远程 mongoDB 服务器。当我使用 Robo3T 连接用户名和密码时,它将成功连接(ssh)。

但是,当我在节点服务器中使用它时,会出现以下错误。

代码

mongoose.Promise = require('bluebird');
mongoose.connect('mongodb://156.6*.***.***:22/TestDB',
{user:'root', pass:'********', useMongoClient: true} , 
error => {
console.log(error);
}
 );

错误

{ 
  err: 'socketHandler',
  trace: '',
  bin: undefined,
  parseState:
   { 
     sizeOfMessage: 759714643,
     bytesRead: undefined,
     stubBuffer: undefined
   } 
}
Unhandled rejection (<{"err":"socketHandler","trace":"","par...>, no stack trace)

我尝试了很多方法。但它总是返回那个错误。我该如何解决这个问题?

【问题讨论】:

  • 也许你应该检查被拒绝的承诺?
  • 如何做到@modernator
  • mongoose.connect('mongodb://username:password@/156.6*.***.***:22/TestDB')
  • 我不知道 moongse,但它似乎使用了 Promise。使用 catch 方法添加 onrejected 处理程序。
  • @AmrAly 我试过了。但它没有用。在我的场景中仅适用于本地主机

标签: node.js mongodb mongoose ssh remote-server


【解决方案1】:

尝试将pass 更改为password

mongoose.Promise = require('bluebird');
mongoose.connect(
  'mongodb://156.6*.***.***:22/TestDB',
  {
    auth: {
      user:'root',
      password:'********',
    },
    useMongoClient: true
  },
  err => {
    console.log(err);
  },
);

我还添加了一个日志来捕获可能引发的任何错误。如果它不起作用,请告诉我们它的输出。

【讨论】:

  • mongoose.connect('mongodb://156.6*.*.***:22/TestDB',{user:'root', password:'** ********', useMongoClient: true}, function(err, db) { if(err){ console.log(err); } else{ console.log(db); } } );**
  • 我稍微编辑了我的答案,将用户/密码推送到 auth 对象中。请尝试并报告
  • 现在它给出了以下错误。 ** events.js:183 throw er; // 未处理的“错误”事件 ^ 错误:在 Server.setupListenHandle [as _listen2] (net .js:1367:14) ...... **
  • 有趣我相信这个错误与 Mongodb 无关了。看起来您正在尝试使用端口 8089,但是它正在被其他东西使用。确保停止其他程序/重新启动
  • 是的,我清除了端口上的进程。现在它给出以下错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多