Kiedy dzwonisz do mongoose.connect
, nawiąże połączenie z bazą danych.
Jednak dołączasz detektor zdarzeń dla open
w znacznie późniejszym momencie (kiedy żądanie jest obsługiwane), co oznacza, że połączenie jest prawdopodobnie już aktywne i open
wydarzenie zostało już wywołane (po prostu jeszcze go nie słuchałeś).
Powinieneś zmienić układ kodu tak, aby procedura obsługi zdarzeń była jak najbliżej (w czasie) wywołania połączenia:
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');
};