2017-07-19 26 views
0

帆サーバー:6.10.2 Sails.js、MongoDb:接続しようとするとタイムアウトします。接続プールを使用できますか?

のMongoDBサーバーNode.jsの

  • のWindows 10の64ビット
  • Sails.js 1.0.0-36
    • CentOS 7 on Virtualbox、ホストネットワーキングのみ
    • 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]' } 
    

    ここで何が間違っていますか?

    重要:新しい接続を作成する代わりに、グローバルSails接続プールを使用することは可能ですか?どうやって?私はドキュメントを検索しましたが、特定の参照を見つけることができません。

答えて

1

コードが間違っていた - ポート27027を使用して、それが27017.

データストアの接続が原因で、私は「didnの正しいフォールバックの仕事をしなければならない一方、 t notice

0

参考この

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

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

}); 

をお試しください:here

+0

'err'は間違いなく' null'ではありません---これはエラーです。別の方法でテストする必要はありません。ありがとうございます。 – noderman

関連する問題