Khi bạn gọi mongoose.connect
, nó sẽ thiết lập kết nối với cơ sở dữ liệu.
Tuy nhiên, bạn đính kèm trình xử lý sự kiện cho open
vào thời điểm muộn hơn nhiều (khi một yêu cầu đang được xử lý), nghĩa là kết nối có thể đã hoạt động và open
sự kiện đã được gọi (bạn vẫn chưa lắng nghe sự kiện đó).
Bạn nên sắp xếp lại mã của mình để trình xử lý sự kiện càng gần (đúng lúc) với cuộc gọi kết nối càng tốt:
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');
};