我試圖通過貓鼬連接到MongoDB replicaSet。我用這個link。
配置JSON:
Mongoose連接到副本集
"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)
Db的:聊天,主服務器:localhost:27022。
另外我試着刪除另外兩臺服務器(只保留配置json中的主服務器),並且我看到它知道二級服務器(我用過日誌)。我認爲這是關於mongodb元數據。但是,當我關閉主要的一個,它完成了它的工作(難怪),我需要它,所以它可以使用第二個替代。
任何想法?
@ lor1an正如在這個答案中指出的那樣,你的dbname應該在host:ports列表後面*因此你的連接字符串應該是:'mongodb:// localhost:27022,mongodb:// localhost :27021,mongodb:// localhost:27020/chat' – MForMarlon
@MForMarlon正如我的,對吧? – malix
是的。語法對於mongo連接起作用非常重要。 – MForMarlon