Domanda

Ho configurato come sotto e il mio mongodb non ha bisogno di username o password:

mongo: {
    module: 'sails-mongo',
    url: "mongodb://127.0.0.1:27017/mydb",
    replSet: {
        servers: [
            {
                host: "127.0.0.1",
                port : 27018
            },
            {
                host: "127.0.0.1",
                port : 27019
            }
        ],
        options: {connectWithNoPrimary:true, rs_name:"rs0"}
    }      
}
.

funziona bene, il che significa che non ottengo un errore di connessione e sono in grado di interrogare.Ma quando ho portato giù 127.0.0.1:27017, 127.0.0.1:27018 diventa primario come se avessi fatto un Rs.Status ().Dopo questo, non sono più in grado di fare qualche domanda e continuare a ricevere quanto segue:

.

Errore: No Collegamenti aperti

Sono sicuro che ho configurato correttamente la replica nella mia macchina locale mentre usavo il driver nativo mongodb per testare lo scenario sopra menzionato (abbattere primario e secondario assumere come primario) e non ci sono problemi.

var url = 'mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/mydb?w=0&wtimeoutMS=5000&replicaSet=sg1&readPreference=secondary';

mongodb.MongoClient.connect(url, function(err, result) {
    if(err || result === undefined || result === null) {
          throw err;
    } else {
          db = result;  
    } 
});
.

È stato utile?

Soluzione

ok ho trovato la risposta.Questo messaggio emesso a causa della sessione.js.Ho commentato tutto nel file e ora funziona.La ragione per cui immagino è in session.js, punta solo a un singolo host, che è il principale principale.Quando si abbatte questo MONGODB primario, Session.js non può più connettersi in modo che abbia lanciato un'eccezione.Ho anche provato la stringa URL di MongoDB in sessioni.js mettendo anche gli host IP nel set di replica (mongodb: //127.0.0.1: 27017,127.0.0.1: 27017,127.0.0.1: 27018,127.0.0.1: 27018 / myDB) ma non è riuscito a"Ascensore delle vele".Quando metti solo un singolo host, allora va bene.

Ora se ho bisogno di memorizzare le informazioni di sessioni, ho bisogno di avviare un'altra istanza mongodb, quindi Session.js punta a questo nuovo istante.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top