0

テンプレートを使って学習node.jsexpressています。ejsいくつかのコードを学習しているconfigときに、レンダリング時に変数として送信せずにテンプレートを呼び出すことができることがわかりました。

これが「todo」プログラムとしての小さなプロジェクトです。

そのviews/layout.htmlで、私は見つけました

<title><%= config.site_name %></title>

しかし、controllers/todo.jsでは

そうか

var config = require('../config');
...
res.render('index', {todos: rows});

最初は必要ですが、明らかにに送信configされません。ejstodo.jsconfig

では、なぜejsレンダラーがconfigレンダリング中に呼び出すことができるのでしょうか。

TIA

4

1 に答える 1

1

app.helpersビューにデータを公開する を使用します。

例:

app.helpers({foo: "bar"});

することと同等です:

res.render("index", {foo: "bar"});

へのすべての呼び出しでrender

編集:もあり、 onと同様app.dynamicHelpersにものを使用できます:reqres

app.dynamicHelpers({
  foo: function(req, res) {
    return req.session.foo;
  }
});

Express ガイドを一読することをお勧めします。このガイドは非常に短く、Express で利用できる機能の概要を説明しています。

于 2012-03-13T11:38:14.127 に答える