J'ai essayé de me connecter à MongoDB replicaSet via mongoose. J'ai utilisé ce link.
Configuration JSON:
Connexion de Mongoose au jeu de réplicas
"mongoose": {
"uri": "mongodb://localhost:27022/chat,localhost:27021,localhost:27020",
"options": {
"replset": { "rs_name": "rs0" },
"server": {
"poolSize": 3,
"socketOptions": {
"keepAlive": 1
}
}
}
}
Mongoose connecter:
var mongoose = require('mongoose');
mongoose.connect(config.get('mongoose:uri'), config.get('mongoose:options'));
Après le lancement des applications i eu exception:
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: chat, serveur principal: localhost: 27022.
J'ai également essayé de supprimer deux autres serveurs (en gardant seulement le principal dans config json) et j'ai vu qu'il connaît les serveurs secondaires (j'ai utilisé le journal). Je pense qu'il s'agit de méta-données mongodb. Mais quand j'ai éteint le premier, il a fini son travail (pas étonnant), j'en ai besoin pour pouvoir utiliser le secondaire à la place.
Des idées?
@ lor1an Comme indiqué dans cette réponse, votre nom de fichier devrait venir * après * la liste des ports hôte: Donc, votre chaîne de connexion doit être: 'mongodb: // localhost: 27022, mongodb: // localhost : 27021, mongodb: // localhost: 27020/chat' – MForMarlon
@MForMarlon Comme je l'ai fait, non? – malix
Oui.La syntaxe est importante pour que la connexion mongo fonctionne. – MForMarlon