3

node.jsは初めてです。EJSテンプレートを使用しようとしていますが、少し障害があります。正しく理解していれば、<%%>内のすべてのコードはサーバーサイドで実行されます。私が知らないのは、それらのタグ内のモジュール(jsファイル)にあるjavascript関数をどのように使用できるかです。私はそれらをsmthのように含めるべき<script src="...">ですか?しかし、それはそれがブラウザに送信されることを意味しますが、私はそれを望んでいません(または私はそうしますか?)。適切なアーキテクチャは何ですか?


2番目の質問は:ejsヘルパーは具体的に何ですか?どうすれば作ることができますか?(申し訳ありませんが、簡単な例は見つかりません)

4

2 に答える 2

3

テンプレート内でロジックを使いすぎているようです。カスタム関数を呼び出したくない、それらのHTMLヘルパーを使用したくない。

代わりに、テンプレートにバインドされたデータモデルを適切に定義し、ビジネスロジックをデータモデルと一緒にラップします。

次に、データオブジェクトのインスタンスを作成し、それをEJSに渡します。

あなたが向かっているのはtagsoup地獄です。テンプレートの目的は、単純なループと部分的なビューを使用してJSONをHTMLに変換することだけです。

于 2011-05-19T20:11:34.470 に答える
3

古い質問ですが、他の誰かがここでつまずいた場合に備えて...

Express 3では、app.localsにヘルパーを追加できます。元:

app.locals.somevar = "hello world";

app.locals.someHelper = function(name) {
  return ("hello " + name);
}

これらは、次のようにビュー内でアクセスできます。

<%= somevar %>
<%= someHelper('world') %>
于 2013-04-19T06:06:35.280 に答える