关于ejs模板部分的问题~
一直在看《Node.js实战》这本书,其中第六章涉及到使用express+ejs,在其中渲染模板的时候,一个页面只读取了数据库的一个表的数据来渲染,如果要在一个页面读取两个甚至更多表的数据来渲染怎么做啊?
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 非常感谢,写得很详细~