Потому что вы пытаетесь синхронно использовать асинхронный код.
app.get('/page', function(req, res, next) {
callback_(function(err, count) {
if (err) {
// Обрабатываем ошибку
return res.status(500).end();
}
console.log(count); // выводит нужный результат
res.render('page', {
postCount: count
});
});
})
var callback_ = function(cb) {
setTimeout(function() {
getPostCount(cb)
}, 5000);
}
var getPostCount = function(cb) {
connection.query("SELECT COUNT(*) FROM posts", function(err, result, fields) {
if (err) return cb(err);
cb(null, result.length);
});
};