2

基本上我想构建一个站点范围的导航栏,其中包含在 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

但是,我收到一个参考错误“未定义导航链接”,我认为这意味着本地人没有通过。希望获得有关如何解决问题的建议,或者更适合此类事情的另一种设计范例(在网站的每个页面上动态构建链接)。谢谢!

4

1 回答 1

3

乔纳森·翁是正确的。您上面的代码应该以默认的中间件顺序工作,该顺序将在app.use中间件之前运行所有app.router中间件。因此,我同意在您的代码的其他地方,您的代码片段中可能有一行app.use app.router出现app.use在您的代码片段之前。

于 2012-08-25T02:57:56.100 回答