简化 Express 和 Jade 的工作流程
Streamlining workflow of Express and Jade
我目前正在开发一个使用 MongoDB、Express 和 Jade 的项目。我们总是想将用户帐户 JSON 数据扔到视图中。我们拥有的每一个控制器,我们都在写
exports.theView = function(req, res){
User.findOne({ username: req.user.username }, function(err, user){
res.render('theview.jade', { user: user });
});
}
似乎应该有更好、更有效的方法来做到这一点。
有什么建议吗?
我认为您可以使用中间件来设置响应局部变量 (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
我目前正在开发一个使用 MongoDB、Express 和 Jade 的项目。我们总是想将用户帐户 JSON 数据扔到视图中。我们拥有的每一个控制器,我们都在写
exports.theView = function(req, res){
User.findOne({ username: req.user.username }, function(err, user){
res.render('theview.jade', { user: user });
});
}
似乎应该有更好、更有效的方法来做到这一点。
有什么建议吗?
我认为您可以使用中间件来设置响应局部变量 (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