使用猫鼬连接到MongoDB ReplicateSet失败

时间:2018-08-24 12:28:06

标签: node.js mongodb mongoose

节点版本: 10.9.0

猫鼬版本: 4.9.10

生产中的Mongo版本: 3.6

我正在尝试从本地计算机使用Node.js中的猫鼬连接到MongoDB中的副本集。但是,我的连接因错误而超时:

MongoError: failed to connect to server [\*.\*.\*.\*:27017] on first connect [MongoError: connection 13 to \*.\*.\*.\*:27017 timed out]

但是,我可以从本地计算机的mongo shell连接到各个节点。连接到副本集的Nodejs代码如下:

var options_compute = {  
   auth:{  
      authdb:'admin'
   },
   user:'username',
   pass:'password',
   replset:{  
      auto_reconnect:true,
      socketOptions:{  
         keepAlive:30000,
         connectTimeoutMS:30000,
         socketTimeoutMS:30000
      }
   },
   server:{  
      socketOptions:{  
         keepAlive:30000,
         connectTimeoutMS:30000,
         socketTimeoutMS:30000
      }
   }
};

var ip = "mongodb://"+public_ip1+":27017,"+public_ip2+":27017,"+public_ip2+":27017/db_name?replicaSet=rs0"; 

connect_compute = mongoose.createConnection('ip', options_compute);

MongoDB实例托管在运行Amazon Linux的AWS中。当我将代码部署到AWS时,该代码可以运行,但是不能在本地环境中运行。

PS:

  1. 我无法使用Mongoose的 .connect()进行连接,因为我需要保持连接对象。

  2. 我不能使用任何mongo连接字符串,例如:mongodb:// username:password @ ip:port / database,因为我的密码包含@

0 个答案:

没有答案