一个小收获而已。。。
发布于 3年前 作者 jackybing 2067 次浏览
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 %>' />

这只是一个很简单的示例,希望对初学都有所帮助!!!

10 回复

这个发现不错,有帮助啊!用来放额外的message不错。

这个需要什么模板吗?我为什么是不出来啊

用的是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()是针对当前请求的。

回到顶部