Большинство библиотек объектных моделей, таких как Mongoose или Sequelize, поддерживают Promises, и, вероятно, вы сможете сделать что-то вроде этого
router.get('/', function(req, res, next) {
const categoryPromise = Category.find({});
const productPromise = Product.find({});
Promise.all([
categoryPromise,
productPromise,
]).then(([
products,
categories
]) => {
res.render('produtos/index', {
categories,
products
});
})
});
В противном случае вы сможете создавать свои собственные обещания, например:
router.get('/', function(req, res, next) {
const categoryPromise = new Promise((resolve, reject) => {
Category.find({}, function(error, data){
error ? reject(data) : resolve(data);
});
})
const productPromise = new Promise((resolve, reject) => {
Product.find({}, function(error, data){
error ? reject(data) : resolve(data);
});
})
Promise.all([
categoryPromise,
productPromise,
]).then(([
products,
categories
]) => {
res.render('produtos/index', {
categories,
products,
});
})
});