在express.js中的每个请求上设置全局res.localvariables
基本上我想要build立一个站点宽的导航栏,其中包含在express.js中的本地variables中指定的链接
所以我build立了我想要包含在页面上的链接列表:
class NavigationLink constructor: (@title,@url) -> app.use (req,res,next) -> res.locals.navigationLinks = [ new NavigationLink "About", "/about" new NavigationLink "Projects", "/projects" new NavigationLink "Skills", "/skills" new NavigationLink "Contact", "/contact" ] next()
那么如果我打到主页:
app.get '/', (req,res) -> res.render('about')
Jade试图呈现这个布局文件,该文件应该循环遍历navigationLinks数组并为每一个渲染:
!!! 5 html include header body .container .row .span3 ul.nav.nav-tabs.nav-stacked for navigationLink in navigationLinks include navigationLink .span9 block content
不过,我得到一个参考错误'导航链接没有定义',我假设意味着当地人没有得到通过。 会爱如何解决这个问题的build议,或者更适合这种事情的另一种devise模式(在网站的每个页面上dynamic构build链接)。 谢谢!
乔纳森翁是正确的。 你上面的代码应该在默认的中间件顺序中运行,它将在app.use
中间件之前运行所有的app.router
中间件。 因此,我会同意在你的代码中的其他地方,你可能有一行app.use app.router
,在你的代码片段中的app.use
之前。