問題タブ [ejs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
12138 参照

layout - Express/EJS で、デフォルトのレイアウトを変更するにはどうすればよいですか?

私はそれをlayout.ejsにしたくありません。

レイアウトをこの特定のコントローラーの別のテンプレートに設定したいと考えています。

0 投票する
4 に答える
2650 参照

node.js - Express.js の EJS - Express Helpers が機能しない - (app) in require

Express.js で EJS テンプレート エンジンを使用しており、ビュー ヘルパーを使用したいと考えています。github でこれを見つけました: https://github.com/tanema/express-helpersですが、使用しようとすると次のエラーが発生します。

一方、この行は app.js の 12 行目です。

そして私がそれを作るなら

エラーはスローされますが、機能しません。

app.js ファイルのトップは次のとおりです。

アイデア?

前もって感謝します!

0 投票する
1 に答える
445 参照

forms - フォームにデータを入力するためのベスト プラクティスは?

基になるレコードを編集できるように、データを入力する必要があるフォームを含む ejs ビューがあります。データを含むオブジェクトをビューに渡しましたが、フォームに入力する方法が 2 つあります。どちらが優れているかを判断するための助けが必要です。

オプション 1 - 「サーバー側」の人口

次のように、フォームの値を要素に直接入れることができます。

オプション 2 - 「クライアント側」の人口

または、オブジェクト全体をクライアントに返し、javascript を使用して次のようにフォーム フィールドにデータを入力することもできます。

オプション 2 の利点は、新しいデータが ajax 経由で読み込まれた場合に、関数を簡単に再利用してフォームを再入力できることです。また、オプション 1 では何らかのタイプの html エンコーディングと引用符のエスケープが必要になるのに対し、すべてが js オブジェクト内にあるため、データをエスケープする必要がなくなります。一方、オプション 1 は js なしで機能します。

これを行うための標準的なベストプラクティスの方法はありますか (また、これらのオプションの 1 つですか)?

0 投票する
2 に答える
1231 参照

json - JSON からの参照データの取得

次の形式のjsonデータがあります

メッセージに存在する ID を使用して、学生の名前をメッセージにマップするにはどうすればよいですか? 私はJSON解析に比較的慣れていません。現在、EJS テンプレートを使用して JSON を HTML に操作しています。

使っているだけで

「未定義」を返します。助けてください。

0 投票する
4 に答える
40144 参照

javascript - node.jsのejsで未定義のプロパティをどのようにチェックしますか?

ejsテンプレートで未定義のプロパティをチェックするための最良の方法は何ですか?

(私はTJ Holowaychukによるnode.jsパッケージを使用しています)

例:

これで「fooundefined」がレンダリングされると思います。代わりに、 fooの未定義エラーをスローします。

これはテストで予想される動作であるため、これが問題になることはないことを私は知っています。これを回避する簡単な方法はありますか?

私が見つけた唯一の解決策は、このhasOwnProperty方法を使用することです。

これはエラーをスローしません。

テンプレートをきれいに保つためのより良い方法はありますか?または、なぜこのエラーがスローされるのですか?

0 投票する
1 に答える
4873 参照

node.js - パーシャルに関する初心者の質問

ヘッド、メニュー、コンテンツ、フッターを含むシンプルなページがあります。それらを別々のファイルに分割する必要があります。エクスプレスドキュメントを読んだ後、私は(4つのテンプレートを作成して)次のように書きました。

それは動作しますが、私には少し汚いようです。部分的なテンプレートを使用するより良い方法はありますか?

0 投票する
0 に答える
220 参照

jammit - Jammit を EJS JavaScript テンプレートで使用するにはどうすればよいですか?

Jammit を EJS JavaScript テンプレートで使用したことのある人はいますか? jammit で新しいテンプレートをロードする方法がわかりません。それは私にキャッシングの問題を引き起こしています。

通常、テンプレートをロードする方法は次のとおりです。Jammit を使用してどうすればよいかわかりません。
http://code.google.com/p/embeddedjavascript/wiki/Templates html = new EJS({url: '/template.ejs'}).render(データ)

0 投票する
1 に答える
3829 参照

node.js - Cradle / Express/EJSはhtmlをそのエンティティに変換します

私はブログでCradlewithExpressとEJSを使用しています。たぶん私はsmthが欠けていますが、それらのいくつかはhtmlエンティティを同等のものに変換します。

doc.quoteフィールドにhtmlがあり、このコードの後に​​変更されます

quotes.ejs:

「res」変数は、「content」フィールド(htmlを持つ)を持つオブジェクトを持つ配列です。ただし、「str」をレンダリングした後、「quotes [i] .value.quote」シンボルがそのエンティティに変換されます。たとえば、<br>を&lt;に変換します。br&gt;

0 投票する
1 に答える
99 参照

javascript - JavaScript コンパイラでコンパイルするスクリプトを準備する (Google Closure)

私は多くの場所でコードを書いています。パフォーマンスと構文チェックのために JavaScript コンパイラを使用できるようにコードをリファクタリングしたいと考えています。コンパイルするコードを準備するための推奨事項は何ですか?

  • JavaScript でサーバー側のデータをレンダリングするために、EJS で記述された JavaScript コードがあります。

コード:

  • コンパイラが変数名を変更すると思います(どの変数を変更しないように設定できるかはわかっていますが、ページ、スクリプト、またはウィジェット/サブページ全体で非常に多くの変数が使用されています; global のようなものvar)、その場合はきっと私のコードを折りたたむでしょう。

クロージャー スタイルで記述すると、各スクリプト ファイル間の変数の衝突が緩和されると聞いたことがあります。そのパターンを使用してすべてのコードを書き直す必要がありますか? コードを最初から作成する必要がありますか? コンパイルするコードを準備する方法を求めていますが、何か提案はありますか?

0 投票する
1 に答える
1056 参照

node.js - Node JS Express ボイラープレートとレンダリング

私はノードを試しています.Expressボイラープレートのインストールを介したExpressフレームワークです。Redisをインストールする必要があることを理解するのにしばらく時間がかかりました(ところで、定型文を作成している場合は、必要なすべてのソフトウェアを含めるか、特定のソフトウェアの要件について警告します-Redisは必須として言及されたことはありません)。 server.js ファイルの周り。

今のところ、私はこれでサイトを構築する方法についてまだ見知らぬ人です..

特に私を悩ませている問題が 1 つあります。server.js ファイルを実行すると、すべて問題ないと表示されます。ブラウザでアクセスしようとすると、「localhost からデータを転送しています」と表示されて終了しません。render が送信を完了せず、ヘッダーを送信しないようです。エラーなし、ログなし、何もありません - res.render('index') がハングするだけです。ファイルは存在し、スクリプトはそれを見つけますが、何も起こりません。render にコールバックが定義されていないため、ヘッダーは通常どおり送信されます。一方、render コマンドを単純な write('Hello world'); に置き換えると、そして res.end(); を実行すると、魅力的に機能します。

レンダリングで何が間違っていますか? 元のインストールから何も変更していません。問題のファイルは index.ejs で、views/ にあり、app.register('.ejs', require('ejs')); も呼び出しました。念のため、レンダリング自体の前に。EJSがインストールされています。

また、注目に値する- res.render('index'); を実行した場合 そして res.write('Hello'); その直後に res.end(); を実行すると、画面に「Hello」が表示されますが、レンダリングは行われず、ハングして「localhost からデータを転送しています」と表示されます。したがって、アプリケーションが実際に停止したりハングしたりすることはなく、レンダリングが終了しないだけです。

編集: イベントの興味深いターン: レンダリングでコールバックを定義すると、応答は終了します。「データの転送中...」はもうありませんが、ビューはレンダリングされず、レイアウトもレンダリングされません。ソースは検査時に完全に空です。エラーはまったくなく、例外もありません。