基本上我想构建一个站点范围的导航栏,其中包含express.js中局部变量中指定的链接
所以我构建了我想要包含在页面中的链接列表:
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
但是我收到参考错误' navigationLinks未定义'我认为这意味着当地人没有通过。会喜欢关于如何解决问题的建议,或者更适合这种事情的另一种设计范例(在网站的每个页面上动态构建链接)。谢谢!
答案 0 :(得分:3)
Jonathan Ong是对的。上面的代码应该以默认的中间件顺序运行,该顺序将在app.use
中间件之前运行所有app.router
中间件。因此,我同意您的代码中的其他地方您可能在代码段中的app.use app.router
之前有一行app.use
。