CNode

nodejs开发指南里面dynamicHelpers函数问题求解。。。

Zzhoon发布于14 年前最后回复13 年前7 回复6225 浏览0 收藏

各位大虾,请教一个问题:nodejs开发指南注册那里,使用了dynamicHelpers函数,但是因为我现在用的是express3.x,木有这个函数了,请问如何解决啊??? 在网上找了一下,是使用app.use(function(req, res, next){res.locals.user = req.session.user}),可还是出错,总是说user没有定义,无法把会话传到layout.ejs那里。。。。 多谢!

查看回复

回复 (7)

F
fedaniel#1·14 年前

我也遇到了这个问题,我的解决方案是在res.render里面定义user,不然传不过去。 暂时没找到更好的解决方法

K
ktmud#2·14 年前

请确认 app.use 是在 router 配置 [ 即 app.get('/'.... ] 之前。

G
glowin#4·13 年前

解决方案:

将书中app.js的dynamicHelpers代码部分改为:

app.use(function(req, res, next){ var error = req.flash('error'); var success = req.flash('success'); res.locals.user = req.session.user; res.locals.error = error.length ? error : null; res.locals.success = success ? success : null; next(); });

并把此代码放在 app.use(app.router); 之前。

模板文件中改为下面类似结构: <% if (!locals.user) { %> <% if ( locals.error ) { %> <% if ( locals.success ) { %>

L
ldl694178563#5·13 年前

你的这个问题我也遇到过,我特地记录了下来http://www.9958.pw/post/dynamicHelpers_helpers 你也可以看看这篇文章对你也许有帮助 http://www.9958.pw/post/nodejs_lesson (主要是我当时做的demo可以参考参考)

参与回复
登录后即可参与回复。登录