mongoose 経由で MongoDB replicaSet に接続しようとしました。このリンクを使用しました。
構成 json:
"mongoose": {
"uri": "mongodb://localhost:27022/chat,localhost:27021,localhost:27020",
"options": {
"replset": { "rs_name": "rs0" },
"server": {
"poolSize": 3,
"socketOptions": {
"keepAlive": 1
}
}
}
}
マングース接続:
var mongoose = require('mongoose');
mongoose.connect(config.get('mongoose:uri'), config.get('mongoose:options'));
そして、アプリケーションを起動した後、例外が発生しました:
Error: host must be specified [undefined]
at new exports.ConnectionPool (c:\Users\lor1an\Downloads\prj_chat-master\prj_chat-master\node_modules\mongodb\lib\mongodb\connection\connection_pool.js:18:11)
at Server.connect (c:\Users\lor1an\Downloads\prj_chat-master\prj_chat-master\node_modules\mongodb\lib\mongodb\connection\server.js:335:25)
at Db.open (c:\Users\lor1an\Downloads\prj_chat-master\prj_chat-master\node_modules\mongodb\lib\mongodb\db.js:264:23)
at MongoStore._open_database (c:\Users\lor1an\Downloads\prj_chat-master\prj_chat-master\node_modules\connect-mongo\lib\connect-mongo.js:174:15)
at MongoStore._get_collection (c:\Users\lor1an\Downloads\prj_chat-master\prj_chat-master\node_modules\connect-mongo\lib\connect-mongo.js:169:14)
at MongoStore.get (c:\Users\lor1an\Downloads\prj_chat-master\prj_chat-master\node_modules\connect-mongo\lib\connect-mongo.js:213:10)
at Object.session [as handle] (c:\Users\lor1an\Downloads\prj_chat-master\prj_chat-master\node_modules\connect\node_modules\express-session\index.js:215:11)
at next (c:\Users\lor1an\Downloads\prj_chat-master\prj_chat-master\node_modules\connect\lib\proto.js:194:15)
at Object.module.exports [as handle] (c:\Users\lor1an\Downloads\prj_chat-master\prj_chat-master\middleware\resExtensions.js:21:2)
at next (c:\Users\lor1an\Downloads\prj_chat-master\prj_chat-master\node_modules\connect\lib\proto.js:194:15)
データベース: チャット、プライマリ サーバー: localhost:27022。
また、他の2つのサーバーを削除しようとしました(構成jsonにプライマリサーバーのみを保持)。セカンダリサーバーについて認識していることがわかりました(ログを使用しました)。それはmongodbのメタデータに関するものだと思います。しかし、プライマリをシャットダウンすると、その作業が終了しました (不思議ではありません)。代わりにセカンダリを使用できるようにする必要があります。
何か案は?