2017-04-01 23 views
0

だから私は(学習Javascriptを中間原料/ w)の最初のノード/ Expressの頭の中に鳩とジェイドまたはEJSのような「ビュー・エンジンは、」必要な理由で少し混乱イムましたか?エクスプレス/ノードにビューエンジンが必要ですか?

私は普通のHTML5を使用して何かを見つけるように見えることはできませんか?それとも、普通のHTMLに値を渡すことができないのでしょうか?

私はロードするindex.htmlページを持っていたと私は "ログイン"時に、ユーザー名が(たとえばちょうど)に掲示されてロードします。 Express内の通常の.htmlファイルに値を渡すことはできますか?

答えて

2

Express/Nodeにはビューエンジンが必要ですか?

いいえ、必須ではありません。 Expressは、静的なHTML5ファイルを喜んで提供します。そのためのビューエンジンは必要ありません。カスタムルートを作成し、各ページのres.sendFile()を使用するか、自動的に静的なHTMLファイルのディレクトリ全体に奉仕するか、あなたがそれを送信するためにres.send()を送信し、使用したいものは何でもHTML5コンテンツ構築するために独自のコードを書くことができexpress.static()を使用することができますすることができます。

動的なコンテンツのプレースホルダでHTMLテンプレートを作成し、その後サーバー上のページに動的な値を挿入するテンプレートタイプのシステムが必要な場合は、ビューエンジンが必要です。

Express内の通常の.htmlファイルに値を渡すことはできますか?

いいえ、正規表現ではできません。 Expressには静的HTMLファイルを提供する機能がありますが、動的コンテンツをHTMLファイルに挿入する機能はありません。それはビューエンジンを使用するためのものです。 Expressは数多くの異なるビューエンジンの考え方があり、Expressでは1つのスタイルを要求したくないため、その機能を構築していないため、テンプレートからレンダリングするためのビューエンジン・インターフェースをサポートしています。つかいます。主な質問に答えるために

+0

私は私の意見フォルダディレクトリ内のindex.htmlファイルにres.sendを使用してみましたし、それが見つかりませんでした。私はちょうど別の静的ファイル(私のCSSなどと一緒に)に含めるだけですか? – msmith1114

+0

@ msmith1114 - あなたが間違っていることを知るためにあなたが使っているコードを表示する必要があります。 'res.send()'はメモリ内の文字列と共に使われます。 'res.sendFile()'はディスクからのファイルと共に使用されます。ファイルが見つからない場合は、パスを間違えている必要があります。ビューエンジンでは 'res.render()'を使います。 – jfriend00

+0

私はres.render()を使用していたthats問題doh!私はほとんどのノード開発者がビューエンジンを使用していると思いますか? – msmith1114

1

- ビュー・エンジンは、明示/ノードのために必要ではありません。

あなたは純粋なHTMLに変数/値を渡すことができない、しかし正しいです。ビューエンジンは、渡したデータを見て、あなたのためにHTMLマークアップを生成するものです。

ビューエンジンを使用するもう1つのアプローチは、jquery、react、またはangularのようなフロントエンドライブラリ/フレームワークを使用することです(またはプレーンなjavascriptを使用できます)。 JavaScriptはデータを(ajax/fetchで)読み込み、htmlにバインドできます。普通のjavascriptやjqueryを使用している場合はバインドされませんが、データでDOMを更新できます。

+0

それでは、ビューエンジンなしで(たとえば、データベースからの)Webページに負荷値のようなことをやります。 – msmith1114

+0

ajaxを使用してサーバにHTTPリクエストを送信すると、データベースからデータを取得し、jsonとしてフロントエンドのjavascriptリクエストに戻すことができます。ここに例があります:http://stackoverflow.com/questions/9436534/ajax-tutorial-for-post-and-get –

+0

ほとんどのユーザーは、ビューエンジンを使用していると思いますか? – msmith1114

関連する問題