Node.js Sails.js,MongoDb:尝试连接时超时;可以使用连接池吗?

Node.js Sails.js,MongoDb:尝试连接时超时;可以使用连接池吗?,node.js,mongodb,sails.js,database-connection,sails-mongo,Node.js,Mongodb,Sails.js,Database Connection,Sails Mongo,Sails服务器: Windows 10 64位 Sails.js 1.0.0-36 Node.js 6.10.2 MongoDB服务器: Virtualbox上的Centos 7,仅限主机网络 Mongodb 3.4.4,侦听所有接口,未配置身份验证 我可以成功地扬帆、连接数据存储并使用模型而不会出现任何问题。 但是,此测试将导致超时: let mongo = require('mongodb'); let uri = 'mongodb://' + process.env

Sails服务器:

  • Windows 10 64位
  • Sails.js 1.0.0-36
  • Node.js 6.10.2
MongoDB服务器:

  • Virtualbox上的Centos 7,仅限主机网络
  • Mongodb 3.4.4,侦听所有接口,未配置身份验证
我可以成功地扬帆、连接数据存储并使用模型而不会出现任何问题。

但是,此测试将导致超时:

  let mongo = require('mongodb');


  let uri = 'mongodb://'  + process.env.MONGO_SERVER + ':' + process.env.MONGO_PORT + '/sails';

  mongo.MongoClient.connect(uri, function(err, db) {
    if(err){


      return res.serverError(err);
    }
    return res.json("open");

  });


{ MongoError: failed to connect to server [192.168.99.2:27027] on first connect [MongoError: connect ETIMEDOUT 192.168.99.2:27027]
    at Pool.<anonymous> (....\node_modules\mongodb-core\lib\topologies\server.js:329:35)
    at emitOne (events.js:96:13)
    at Pool.emit (events.js:188:7)
    at Connection.<anonymous> (....\node_modules\mongodb-core\lib\connection\pool.js:280:12)
    at Connection.g (events.js:291:16)
    at emitTwo (events.js:106:13)
    at Connection.emit (events.js:191:7)
    at Socket.<anonymous> (....\node_modules\mongodb-core\lib\connection\connection.js:187:49)
    at Socket.g (events.js:291:16)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at emitErrorNT (net.js:1281:8)
    at _combinedTickCallback (internal/process/next_tick.js:80:11)
    at process._tickDomainCallback (internal/process/next_tick.js:128:9)
  name: 'MongoError',
  message: 'failed to connect to server [192.168.99.2:27027] on first connect [MongoError: connect ETIMEDOUT 192.168.99.2:27027]' }
让mongo=require('mongodb');
让uri='mongodb://'+process.env.MONGO_服务器+':'+process.env.MONGO_端口+'/sails';
mongo.MongoClient.connect(uri,函数(err,db){
如果(错误){
返回res.serverError(err);
}
返回res.json(“打开”);
});
{MongoError:在第一次连接[MongoError:connect-ETIMEDOUT 192.168.99.2:27027]时无法连接到服务器[192.168.99.2:27027]
在池中。(..\node\u modules\mongodb core\lib\topologies\server.js:329:35)
在emitOne(events.js:96:13)
在Pool.emit(events.js:188:7)
连接时。(..\node\u modules\mongodb core\lib\Connection\pool.js:280:12)
在Connection.g(events.js:291:16)
两点钟(events.js:106:13)
在Connection.emit(events.js:191:7)
在套接字上。(..\node\u modules\mongodb core\lib\connection\connection.js:187:49)
在Socket.g(events.js:291:16)
在emitOne(events.js:96:13)
在Socket.emit(events.js:188:7)
在emitErrorNT(net.js:1281:8)
at _combinedTickCallback(内部/流程/下一步_tick.js:80:11)
在进程中。_tickDomainCallback(internal/process/next_tick.js:128:9)
名称:“MongoError”,
消息:“第一次连接[MongoError:connect-ETIMEDOUT 192.168.99.2:27027]时未能连接到服务器[192.168.99.2:27027]。”
我使用的服务器信息与数据存储上使用的服务器信息完全相同

那么这里可能有什么问题

同样重要的是:是否可以使用global Sails连接池而不是创建新连接?怎样我已经搜索了文档,但找不到具体的参考资料。

试试这个

var MongoClient = require('mongodb').MongoClient;

MongoClient.connect("mongodb://localhost:27017/test", function(err, db) {
  test.equal(null, err);
  test.ok(db != null);

});
Ref:

代码错误——使用端口27027,而它应该是27017


数据存储连接工作是因为正确的回退,我没有注意到。

err
绝对不是
null
——这就是我得到的错误,无需以其他方式进行测试,谢谢。