nodejs / Mongoose: Connetti al database che sta utilizzando set di repliche
-
22-10-2019 - |
Domanda
Ho installato MongoDB (1.8.3) su due server separati e li istituito per l'uso "set di repliche" come si trova qui: http://www.mongodb.org/display/DOCS/Replica+Set+Tutorial
tutto sembra bene finora:. Un server è riconosciuta come primaria, una secondaria (quando li ho accesso tramite riga di comando)
il problema è che io non riesco a collegarmi al DB usando node.js (0.4.10) e mangusta (2.1.0) in questo modo:
var mongo = require('mongoose');
mongo.connectSet('mongodb://host/dbname,mongodb://host2/dbname');
Ho sempre trovato il seguente messaggio di errore:
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)
...
cercato un po 'intorno e ha trovato un qualche post dicendo che devo anche di fornire il nome del set di repliche - così ho provato questo, invece:
mongo.connectSet('mongodb://host/dbname,mongodb://host2/dbname', rs_name:"name_replicaset"});
Che cosa sto facendo male qui ...?!
Soluzione
ok, c'è stato un errore nel https://github.com/christkv/node- modulo MongoDB-native. è stato risolto, ma non ancora spinto a NPM. così per tutti voi ragazzi che ottengono lo stesso errore, ecco la soluzione:
https://github.com/christkv/node-mongodb-native/ tiro / 340
Dopo di che, si può solo 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");
}