ねえ??♂️ !EJS (Embedded JavaScript)を始めたばかりで、サーバーとEJS テンプレートの間でデータを渡す方法を疑問に思っている場合は、ここが正しい場所です。 !今週ずっと EJS について学んでいました。EJS へのデータの受け渡しとデータの操作方法について学んだことを共有したいと思いました。
つまり、サーバー (Node.js + Express) から EJS テンプレートにデータを送信する場合は、非常に簡単です。 res.render() メソッドを使用するだけで、データをサーバーから .ejs ファイルに送信できます。
その方法は次のとおりです:
res.render("ejs_file_name", { data });
この例では、EJS ファイル (index.ejs としましょう) をレンダリングし、データ オブジェクトをテンプレートに渡します。
次に、EJS テンプレートでこのデータを使用するには、次のようにアクセスするだけです:
<%= data %>
簡単な内訳は次のとおりです:
データの名前 (この場合は data など) が両方の場所 (サーバー コードと EJS テンプレート内) で同じであることを確認してください。一致しない場合、事態はおかしくなります!
ここが注意が必要な部分です。EJS は、データを使用する前にデータが存在するかどうかをチェックしません。データが常にそこにあるかのように使用されます。そのため、存在しない (または適切に渡されていない) データにアクセスしようとすると、EJS がエラーをスローしてアプリをクラッシュさせる可能性があります。始めたばかりのときは、とてもイライラするかもしれません!
しかし、心配しないでください。簡単な修正方法があります。データを使用する前に、データが存在するかどうかを確認できます。次のように if 条件内にデータをラップできます:
<% if (locals.data) { %> <%= data %> <% } else { %>No data available!
<% } %>
こうすることで、何か問題が発生した場合やデータが渡されなかった場合でもアプリがクラッシュすることはありません。代わりに、フォールバック メッセージを表示するか、別のアクションを実行できます。
?プロのヒント:テンプレートを使用する前に、データがテンプレート内に存在するかどうかを必ず確認してください。これにより、多くの面倒な手間が省けます。
この学習の旅を楽しくするために、ユーザーの名前を入力として受け取り、名前に含まれる文字数をユーザーに伝える単純なプロジェクトを構築することにしました。シンプルですよね?私がやった方法は次のとおりです:
入力データの取得:
ユーザーの姓名を取得する HTML フォームを使用しました。
サーバーにデータを送信:
POSTを使用して、入力データをサーバーに送信し、フルネームの文字数を計算します。
処理されたデータをテンプレートに送信します:
ページに表示するために文字数を EJS テンプレートに戻しました。
これを処理するサーバー側のコードは次のとおりです。
app.post("/submit", (req, res) => { const charCnt = req.body["fName"].length + req.body["lName"].length; res.render("index.ejs", { charectercount: charCnt }); }); // I used body-parser to get the data from the form
私の GitHub で完全なコードをここでチェックしてください: プロジェクト コード
これは、データを EJS テンプレートに渡し、クライアントからデータを取得する方法を簡単にまとめたものです。 EJS は非常に柔軟で、HTML と JavaScript を簡単に組み合わせることができ、データの受け渡しを効果的に管理する方法を学ぶことで、プロジェクトに多くの可能性が広がります。
この投稿の重要なポイントは次のとおりです:
あなたが私と同じように学んでいるだけであれば、この投稿が物事をより明確にし、初期の落とし穴のいくつかを回避するのに役立つことを願っています。ご質問やコメントがございましたら、お気軽に以下に残してください。 ?
以上がデータを EJS テンプレートに渡す、またはその逆 — 初心者向けガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。