关于ejs模板部分的问题~
发布于 9 年前 作者 Lucario1993 4885 次浏览 最后一次编辑是 8 年前 来自 问答

一直在看《Node.js实战》这本书,其中第六章涉及到使用express+ejs,在其中渲染模板的时候,一个页面只读取了数据库的一个表的数据来渲染,如果要在一个页面读取两个甚至更多表的数据来渲染怎么做啊? 360截图20151101182807730.jpg

7 回复

回调加回调, 多次查询?

@jiyinyiyong 不知道为什么,两次查询后会显示第二次读取的数据未定义,是不是渲染的时候只能用一个json数组啊?

这个就要看代码了

很新手的问题啊。用q,写2个mongoose的查询,一起all出来,再render模板就行了😁 自豪地采用 CNodeJS ionic

无比简单,和一个查询没什么区别。我用bluebird做例子了。

//var Promise = require('bluebird');

route.get('/users/:id', function(req,res,next) {
    var user = User.findOne({where: {id: req.params.id});
	var posters = Poster.findAll({where: {userId: req.params.id});
	Promise.join(user, posters, function(userData, userPosters) {
	   res.render('posters.ejs', {user: userData, posters: userPosters});
	}).catch(function(err) {
	   next(err);
	});
});

@klausgao 谢谢解答,已经解决啦!

@eqiuno 非常感谢,写得很详细~

回到顶部