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

ただし、「navigationLinks is not defined」という参照エラーが表示されます。これは、ローカルが通過していないことを意味すると思います。問題を解決する方法についてのアドバイス、またはこの種のことにより適した別の設計パラダイム (サイトのすべてのページでのリンクの動的な構築) についてアドバイスをいただければ幸いです。ありがとう!

4

1 に答える 1

3

ジョナサン・オンは正しいです。app.use上記のコードは、ミドルウェアの前にすべてのミドルウェアを実行するデフォルトのミドルウェアの順序で動作するはずapp.routerです。したがって、コードの他の場所に、おそらくコード スニペットapp.use app.routerの の前にある行があることに同意します。app.use

于 2012-08-25T02:57:56.100 に答える