简化Express和Jade的工作流程

时间:2015-10-09 17:58:24

标签: node.js mongodb pug

我目前正在开发一个使用MongoDB,Express和Jade的项目。我们总是希望将用户帐户JSON数据放入视图中。我们拥有的每一个控制器,我们都在写

exports.theView = function(req, res){
    User.findOne({ username: req.user.username }, function(err, user){
        res.render('theview.jade', { user: user });
    });
}

似乎应该有一种更好,更有效的方法。

有什么建议吗?

1 个答案:

答案 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