Mongoose Verbindung der Ereignisse mit createConnection

Zog ich Sie Weg von der Nutzung der Standard-Verbindung zu einem explizit definierten Verbindung.

Mein code funktioniert, außer, dass keines der event-Handler, welche Spur der Zustand meiner mongo Verbindung feuern.

die Ereignisse verwendet, um Feuer, wenn ich mit Standard-Mungo-Verbindung. (Mungo.verbinden).

var mongoose = require('mongoose'),
    logger = require('../logger'),
    config = require('../config');  

mongoose.connection.on('connecting', function(){
    logger.info("trying to establish a connection to mongo");
});

mongoose.connection.on('connected', function() {
    logger.info("connection established successfully");
});

mongoose.connection.on('error', function(err) {
    logger.error('connection to mongo failed ' + err);
});

mongoose.connection.on('disconnected', function() {
    logger.log('mongo db connection closed');
})

var gracefulExit = function() {
    db.close(function(){
        logger.log("mongoose connection with db " + server + 'is closing');
        process.exit(0);
    });
};

process.on('SIGNT', gracefulExit).on('SIGTERM', gracefulExit);

var db = mongoose.createConnection(config.get('DB_URL'));
module.exports = db;

das problem mit dem code ist

  1. Keiner der event-Handler werden brennen.
  2. Auch die Prozess-Ereignisse auf SIGNT und SIGTERM sind nicht feuern.

Ich habe auch versucht

var db = mongoose.createConnection(config.get('DB_URL'));

db.on('connecting', function(){
    logger.info("trying to establish a connection to mongo");
});

aber auch nicht ausgelöst.

  • Haben Sie versucht, mit mongoose.connect statt mongoose.createConnection?
  • Ich möchte nicht monoose.verbinden Sie denn mit einer "Standard" - Verbindung scheint wie eine schlechte Praxis zu mir. Ich möchte mit einem explizit definierten Verbindung eher als Standard-Verbindung.
  • OK, aber das ist eher gängige Praxis als alles andere.
  • Ihren zweiten Versuch mit db.on arbeitete für mich mit der 'open', 'verbunden' und 'getrennt' - Ereignisse.
  • Ha.. .ja, es war nicht die Arbeit für den Anschluss.. aber arbeitete verbunden. aber warum ist meine close-Methode nicht aufgerufen wird, für die Prozess exit-Ereignis?
  • Ich weiß, dies ist ein Alter thread, aber ich denke, der Grund, warum die close-Methode nicht feuern, weil 'SIGNT' sollte 'SIGINT'

Schreibe einen Kommentar