mongoose.connectを呼び出すとき 、データベースとの接続を確立します。
ただし、openのイベントリスナーをアタッチします かなり後の時点(リクエストが処理されているとき)で、接続がすでにアクティブであり、openであることを意味します イベントはすでに呼び出されています(まだ聞いていませんでした)。
イベントハンドラーが接続呼び出しにできるだけ近くなるように(時間内に)コードを再配置する必要があります:
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');
};