Javascript 如何在nodejs中向视图呈现多个回调函数
我创建了两个从mongodb获取值的函数,然后我想将这些函数渲染到视图,但我一次只能指定一个函数,但不能同时指定两个函数在视图中渲染。 我想知道做以下工作的最佳技巧。 实际上,我想通过以下url显示类别中的书籍Javascript 如何在nodejs中向视图呈现多个回调函数,javascript,node.js,mongodb,asynccallback,Javascript,Node.js,Mongodb,Asynccallback,我创建了两个从mongodb获取值的函数,然后我想将这些函数渲染到视图,但我一次只能指定一个函数,但不能同时指定两个函数在视图中渲染。 我想知道做以下工作的最佳技巧。 实际上,我想通过以下url显示类别中的书籍 http://localhost:3000/category/catid/56696ddeef90d5400b604361 这将获取所提到的类别中的所有书籍以及侧边栏中的所有书籍类别 我的代码如下 function get_books_details(callback){ //c
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});
});
});
});
@纳伦德拉·夏尔马。不客气。如果答案解决了你的问题,你可以接受。