如何将多个callback函数呈现给nodejs中的视图

我已经创build了两个函数,从mongodb中获取值,然后我想将这些函数渲染到视图,但我可以一次只分配函数,但不能同时指定这两个函数在视图中渲染。 我想知道最好的技术来做到以下几点。 其实我想通过以下url显示类别的书籍

http://localhost:3000/category/catid/56696ddeef90d5400b604361 

这将从所提到的类别和侧边栏中的所有书籍类别中获取所有图书。

我的代码如下

 function get_books_details(callback){ //console.log(get_cat_id); //res.render('pages/category', { title: 'Express','get_cat':get_cat_id}); var get_books=[]; var array = []; /* query mongodb start */ MongoClient.connect(url, function (err, db) { if (err) { console.log('Unable to connect to the mongoDB server. Error:', err); } else { db.collection('book', function(err, collection) { collection.find().toArray(function(err,results) { results.forEach(function(item) { array.push(item); }); callback(array); // console.log(array); }); }); } //else end }); /* query mongodb end */ } function get_cat_details(callback){ //console.log(get_cat_id); //res.render('pages/category', { title: 'Express','get_cat':get_cat_id}); var get_cats_call=[]; var array_cats = []; /* query mongodb start */ MongoClient.connect(url, function (err, db) { if (err) { console.log('Unable to connect to the mongoDB server. Error:', err); } else { db.collection('category', function(err, collection) { collection.find().toArray(function(err,results) { results.forEach(function(itemcats) { array_cats.push(itemcats); }); callback(array_cats); //console.log(array_cats); }); }); } //else end }); /* query mongodb end */ } router.get('/catid/:catId', function(req, res) { var get_cat_id=req.params.catId; get_books_details(function(data_book){ console.log(data_book); res.render('pages/category', {title:"LNA Publication","allbuk":data_book,"get_category":get_cat_id}); }); get_cat_details(function(data_cat){ console.log(data_cat); res.render('pages/category', {title:"LNA Publication",itm:data_cat,"get_category":get_cat_id}); }); }); 

CLI输出控制台的屏幕截图命令行界面的屏幕截图

你可以试试这个:

  router.get('/catid/:catId', function(req, res) { var get_cat_id=req.params.catId; get_books_details(function(data_book){ console.log(data_book); get_cat_details(function(data_cat){ console.log(data_cat); res.render('pages/category', {title:"LNA Publication",itm:data_cat,"allbuk":data_book,"get_category":get_cat_id}); }); }); });