MrB*_*les 27 node.js express pug
我想知道是否有一种简单的方法可以从Jade模板中访问Express.js的req或会话变量,而不通过正常响应传递它.
或者这是唯一的方法吗?
res.render('/', {
session: req.session
});
Run Code Online (Sandbox Code Playgroud)
Ajo*_*uve 53
只需添加
app.use(express.cookieParser());
app.use(express.session({secret: '1234567890QWERTY'}));
app.use(function(req,res,next){
res.locals.session = req.session;
next();
});
Run Code Online (Sandbox Code Playgroud)
之前
app.use(app.router);
Run Code Online (Sandbox Code Playgroud)
让你的会话在玉
p #{session}
Run Code Online (Sandbox Code Playgroud)
Dav*_*don 46
在express 3.x中,dynamicHelpers已被删除,因此您需要使用中间件和res.locals.假设我们想要req.query在/signup/new视图中访问:
localQuery = function(req, res, next) {
res.locals.query = req.query;
next();
};
newSignup = function(req, res) {
res.render('signup/new');
};
app.get('signup/new', localQuery, newSignup);
Run Code Online (Sandbox Code Playgroud)
现在任何使用localQuery中间件的路由都会res.locals.query设置.然后可以在您的视图中访问它query.
Dom*_*nes 21
您需要创建一个dynamicHelperfor Express才能使用.
app.dynamicHelpers({
session: function (req, res) {
return req.session;
}
});
Run Code Online (Sandbox Code Playgroud)
然后在模板中,您可以使用<%= session.logged_in %>或其他.
注意:Express 3中不推荐使用dynamicHelpers
| 归档时间: |
|
| 查看次数: |
27037 次 |
| 最近记录: |