NodeJS / mangouste: Se connecter à db qui est à l'aide de jeux de réplicas
-
22-10-2019 - |
Question
i ont installé MongoDB (1.8.3) sur deux serveurs distincts et les configurer pour utiliser « jeux de réplicas » que l'on trouve ici: http://www.mongodb.org/display/DOCS/Replica+Set+Tutorial
tout semble bon à ce jour:. Un serveur est reconnu comme principal, l'un comme secondaire (quand je les accès via commandline)
le problème est que je ne peux pas se connecter à la DB en utilisant Node.js (0.4.10) et la mangouste (2.1.0) comme ceci:
var mongo = require('mongoose');
mongo.connectSet('mongodb://host/dbname,mongodb://host2/dbname');
je reçois toujours le message d'erreur suivant:
TypeError: Cannot read property 'reconnectWait' of undefined
at new <anonymous> (/var/www/node/node_modules/mongoose/node_modules/mongodb/lib/mongodb/connections/repl_set_servers.js:23:31)
at NativeConnection.doOpenSet (/var/www/node/node_modules/mongoose/lib/drivers/node-mongodb-native/connection.js:80:18)
at NativeConnection.openSet (/var/www/node/node_modules/mongoose/lib/connection.js:252:8)
at Mongoose.connectSet (/var/www/node/node_modules/mongoose/lib/index.js:116:27)
...
recherche un peu et a trouvé un endroit après disant que je dois aussi fournir le nom du jeu de réplicas - donc j'ai essayé ceci:
mongo.connectSet('mongodb://host/dbname,mongodb://host2/dbname', rs_name:"name_replicaset"});
ce que je fais mal ici ...?!
La solution
ok, il y avait une erreur dans le https://github.com/christkv/node- module mongodb natif. il est maintenant fixé, mais pas encore poussé à NPM. Donc, pour tous les gars obtenir la même erreur, voici le correctif:
https://github.com/christkv/node-mongodb-native/ traction / 340
Après cela, vous pouvez juste dire
var mongo = require('mongoose');
mongo.connectSet('mongodb://host:27018/testdb, host2:27017/testdb, host3:27019/testdb', function (err) {
if (err) {
console.log("could not connect to DB: " + err);
}
});
mongo.connection.on('open', function () {
console.log("mongodb connection open");
}