6

jade テンプレート エンジンを使用して、node.js と Express を使用して webapp を実装しています。

テンプレートは正常にレンダリングされ、ヘルパーと動的ヘルパーにアクセスできますが、express によって提供され、layout.jade で使用および定義されている「body」ローカル変数以外のローカル変数にはアクセスできません。

これはコードの一部です:

app.set ('view engine', 'jade');

app.get ("/test", function (req, res) {  
    res.render ('test', {
        locals: { name: "jake" }
    });
});

これはtest.jadeです:

p hello
=name

2 行目 (参照名) を削除すると、テンプレートが正しくレンダリングされ、Web ページに「hello」という単語が表示されます。=name を含めると、ReferenceError がスローされます。

500 ReferenceError: Jade:2 NaN. 'p hello' NaN. '=name' name is not defined
NaN. 'p hello'
NaN. '=name'

私は翡翠に従っていると信じており、ローカル変数に関して正確に例を表現しています。私は何か間違ったことをしていますか、それともエクスプレスまたはジェイドのバグでしょうか?

4

3 に答える 3

6
app.set ('view engine', 'jade');

app.get ("/test", function (req, res) {  
    res.render ('test', {
        name: "jake"
    });
});

このようにできます。

于 2011-01-21T01:00:36.637 に答える
3

= の代わりに #{変数名} を使用できます。これは私がそれをどのように使用しているかの例です: これはページをレンダリングし、ナビゲーション用のメニューを表示します。ページが読み込まれるたびにページ タイトルを渡すため、もちろん、ページごとに app.get 関数を作成する必要があります。

App.js

var navigation = {
  home : {
    uri : "/",
    url : "index",
    title : "Home"
  },
  lab : {
    uri : "/lab",
    url : "lab",
    title : "Lab"
  },
  profile : {
    uri : "/profile",
    url : "profile",
    title : "Profile"
  },
  timetable : {
    uri : "/timetable",
    url : "timetable",
    title : "Timetable"
  }
}

app.get(navigation.profile.uri, function(req, res){ //Profile
  res.render(navigation.profile.url, {
    title: navigation.profile.title,
    navigation: navigation
  });
});

プロファイル ジェイド

section#page-content
  h1#page-title #{title}
  p Welcome to #{title}

レイアウト.ジェイド

!!! 5
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/reset.css')
    link(rel='stylesheet', href='/stylesheets/style.css')
  body
    header#site-header
      nav#site-navigation
        != partial("partials/navigation")
    section!= body
  footer#page-footer
于 2011-09-13T13:38:39.320 に答える
2

favicon.icoのブラウザからのリクエストが原因で、エラーが発生することがあると思います。

これらの行を layout.jade ヘッドに追加して、アイコンをリンクしてみてください

link(rel='icon', href='/images/siteicon.png')

これにより、私が得ていたのと同じエラーが削除されました

于 2012-01-30T10:53:28.957 に答える