2016-06-21 6 views
0

私のkeystonejsプロジェクトでは、2つのドッキング用コンテナ(mongo用とkeystonejs用)を作成しました。すべての機能はうまくいきますが、サイトを閲覧するときに(通常は数分間ナビゲートしていないとき)非常に頻繁に「接続が閉じられました」というエラーが表示されます。完全なエラー・スタックは以下の通りです:keystonejsアプリケーションでMongo接続を閉じました

Error thrown for request: /blog 
Error: connection closed 
    at null.<anonymous> (/usr/src/app/node_modules/keystone/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/server.js:618:45) 
    at emitNone (events.js:67:13) 
    at emit (events.js:166:7) 
    at null.<anonymous> (/usr/src/app/node_modules/keystone/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:171:15) 
    at emitTwo (events.js:87:13) 
    at emit (events.js:172:7) 
    at Socket.<anonymous> (/usr/src/app/node_modules/keystone/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connection/connection.js:550:12) 
    at emitOne (events.js:77:13) 
    at Socket.emit (events.js:169:7) 
    at TCP._onclose (net.js:477:12) 

私はいくつかの調査を行っている、とstackoverflowの上の別のポストは、マングース(mongoose output the error "Error: connection closed")上のキープアライブオプションを使用することをお勧めします。しかし、私はキーストーンでどのようにこれらのオプションを使用できるかわかりません。誰でも助けることができますか?

keystonejs docs

敬具、 トム

答えて

1

、だからあなた自身の5月の仕事を産卵

mongoose Object | Instance of Mongoose to be used instead of the default instance. 

の言及があります。私はちょうどthe answer you linkedで言及されたオプションを引っ張った。

私はそれがこのように働いてしまった
const mongoOptions = 
{ 
    db: {safe: true}, 
    server: { 
     socketOptions: { 
      keepAlive: 1 
     } 
    }, 
    replset: { 
     rs_name: 'myReplSet', 
     socketOptions: { 
      keepAlive: 1 
     } 
    } 
}; 

mongoose.connect(YOUR_URI, mongoOptions); 

keystone.set('mongoose', mongoose); 
+0

おかげで、ありませんが、私はそれが働いてしまったようだ可能 – Tom

1

:あなただけに使用するキーストーンのためのマングースのオプションを設定したい場合は、あなたがあなた自身を起動せずに行うことができます

var mongoose = require('mongoose'); 

mongoose.set('server', { 
     socketOptions: { 
      keepAlive: 1 
     }}); 

keystone.set('mongoose', mongoose); 

乾杯、 トム

0

mongooseインスタンス。

あなたは、キーストーンの設定の文書化されていない「モンゴオプション」プロパティを使用してマングース/モンゴのオプションを追加し、あなたが言っているまさに例えば

keystone.init({ 
    'mongo': 'yourMongoURI', 
    'mongo options': { server: { keepAlive: 1 }} 
}); 
関連する問題