Wanneer je mongoose.connect belt , het zal een verbinding met de database tot stand brengen.
U voegt echter de gebeurtenislistener toe voor open op een veel later tijdstip (wanneer een verzoek wordt afgehandeld), wat betekent dat de verbinding waarschijnlijk al actief is en de open evenement is al gebeld (je luisterde er alleen nog niet naar).
U moet uw code zo herschikken dat de gebeurtenisafhandelaar zo dicht mogelijk (in de tijd) bij de verbindingsoproep is:
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');
};