How can I use few query to DB within router on Express.js

30 views Asked by At

I have router and need to fetch data from two different collections. How can I do this without callbacks?

router.get('/menu/:id', function(req, res, next) {
    var product = Product.find({menu: req.params.id}, function(err, products){
        var menu = Menu.findOne({_id: req.params.id}, function(err, menu){
            res.render('menu', {  
                user: req.user,
                csrfToken: req.csrfToken(),
                current_menu: menu,
                products: products
            });
        });
    });
});
1

There are 1 answers

1
El houcine bougarfaoui On BEST ANSWER

as @tadman said it will be useful to use async/await :

router.get('/menu/:id', async function(req, res, next) {
   var products= await Product.find({menu: req.params.id}).exec();
   var menu = await Menu.findOne({_id: req.params.id}).exec();
        res.render('menu', {  
            user: req.user,
            csrfToken: req.csrfToken(),
            current_menu: menu,
            products: products
        });
  });
});