一个小收获而已。。。
res.local('current_user',req.session.user);
上述代码片段其实和下面的代码片段的作用是一致的:
res.render('视图',{'current_user':req.session.user});
两个代码段完成的主要功能是将变量req.session.user传递到对应的view中去,以便在相应的view中可以通过如下的代码获取到对应变量的值,即:
<input type='text' name='_csrf' value='<%= current_user.name %>' />
这只是一个很简单的示例,希望对初学都有所帮助!!!
9 回复
这个需要什么模板吗?我为什么是不出来啊
用的是ejs模板,也就是node_club项目中所使用的模板,有兴趣你可以看看项目源码。。。收获应该会挺大的!!!
不错. 还没注意到这个方法. 不过还是用全局的 dynamicHelpers 好一些
app.dynamicHelpers({ current_user: function(req) { return req.session.user; } });
模板里面可以直接使用
大哥,可以请教下app.dynamicHelpers()函数的作用吗?或者说是作用机制吗?
local在app,res多个地方都可以,作用域不一样。
可以请教下在app下如何使用吗?或者说给出一个代码示例,让自己学习一下!谢谢
@guilin 非常感谢,解决了多日的困惑!!!
@jackybing app.locals(key,value) 是全局的,res.locals()是针对当前请求的。