Frage

Ich habe MongoDB (1,8,3) auf zwei separaten Servern installiert und sie für die Verwendung von "Replikate" wie hier gefunden: http://www.mongodb.org/display/docs/replica+Set+Tutorial

Bisher sieht alles gut aus: Ein Server wird als primär und als sekundär anerkannt (wenn ich über Befehlszeile auf sie zugreife).

Das Problem ist, dass ich mit Node.js (0.4.10) und Mongoose (2.1.0) wie folgt keine Verbindung zum DB herstellen kann:

var mongo = require('mongoose');
mongo.connectSet('mongodb://host/dbname,mongodb://host2/dbname');

Ich erhalte immer die folgende Fehlermeldung:

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)
...

Ich habe ein bisschen herum gesucht und irgendwo einen Beitrag gefunden, in dem ich auch den Namen des Replikate -Sets angeben muss - also habe ich dies stattdessen ausprobiert:

mongo.connectSet('mongodb://host/dbname,mongodb://host2/dbname', rs_name:"name_replicaset"});

Was mache ich hier falsch ...?!

War es hilfreich?

Lösung

Ok, es gab einen Fehler in der https://github.com/christkv/node-mongodb-native Modul. Es ist jetzt repariert, aber noch nicht auf NPM gedrängt. Für alle, die ihr den gleichen Fehler bekommen, ist hier die Lösung:

https://github.com/christkv/node-mongodb-native/pull/340

Danach können Sie einfach sagen

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");
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top