Pregunta

He configurado como a continuación y mi mongodb no necesita nombre de usuario o contraseña:

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"}
    }      
}

Está funcionando bien, lo que significa que no obtengo un error de conexión y puedo hacer la consulta.Pero cuando derribé 127.0.1:27017, 127.0.0.1:27018 se convierte en primaria como si hiciera un Rs.Status ().Después de esto, ya no puedo hacer ninguna consulta y seguir obteniendo lo siguiente:

Error: No hay conexiones abiertas

Estoy seguro de que configuro la réplica de réplica en mi máquina local correctamente, ya que usé el controlador nativo de MongOdb para probar el escenario mencionado anteriormente (reducir la primaria y la secundaria, tome la primaria) y no hay problema.

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;  
    } 
});

¿Fue útil?

Solución

OK, encontré la respuesta.Este mensaje emitido debido a la sesión.js.Comenté todo en el archivo y ahora está funcionando.La razón por la que supongo que está en sesión.js, solo señala a un solo huésped, que es la primaria original.Cuando derriba a este MongoDB primario, Session.js ya no puede conectarse, por lo que lanzó una excepción.También probé la cadena de la URL de Mongodb en Sessions.js al poner también los hosts IP en el conjunto de réplicas (MongoDB: //127.0.0.1: 27017,127.0.0.1: 27018,127.0.0.1: 27019 / MYDB) PERO"Sails Lift".Cuando se ponga un solo host único, entonces está bien.

Ahora, si necesito almacenar información de sesiones, debo iniciar otra instancia de MongoDB, entonces Session.js apunta a este nuevo instante.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top