我目前正在开发一个使用MongoDB,Express和Jade的项目。我们总是希望将用户帐户JSON数据放入视图中。我们拥有的每一个控制器,我们都在写
exports.theView = function(req, res){
User.findOne({ username: req.user.username }, function(err, user){
res.render('theview.jade', { user: user });
});
}
似乎应该有一种更好,更有效的方法。
有什么建议吗?
答案 0 :(得分:1)
我认为你可以使用中间件设置响应本地(http://expressjs.com/api.html#res.locals)来设置用户查看每个请求。
中间件:
app.use(function(req, res, next) {
User.findOne({ username: req.user.username }, function(err, user){
res.locals.user = req.user;
next()
});
});
路线:
app.get('/', function(req, res, next) {
res.render('theview.jade', {title: 'Title'});
});
查看:
block content
h1= title
p= user.name