Wenn Sie mongoose.connect
aufrufen , wird eine Verbindung mit der Datenbank hergestellt.
Sie hängen jedoch den Ereignis-Listener für open
an zu einem viel späteren Zeitpunkt (wenn eine Anfrage bearbeitet wird), was bedeutet, dass die Verbindung wahrscheinlich bereits aktiv und der open
ist Ereignis wurde bereits aufgerufen (Sie haben nur noch nicht darauf gelauscht).
Sie sollten Ihren Code neu anordnen, damit der Event-Handler (zeitlich) so nah wie möglich am Connect-Aufruf ist:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function callback () {
console.log("h");
});
exports.test = function(req,res) {
res.render('test');
};