私は最近、express + jade + mongodb を使用して小さな演習(xí)を行いました。使用される jade テンプレート エンジンは、データをレンダリングするときに JS ロジック コードをページ コードに埋め込む必要があるため、個人的にはこの開発モデルが好きではありません。ノードを使用してそれを?qū)g現(xiàn)するには、バックステージを完全に分離しますか?
フロントエンドとバックエンドの分離ページも埋め込む必要があります js
代碼啊,前端要跑的邏輯肯定還是得跑,express
+ jade
サーバー側(cè)レンダリングが完了し、フロントエンド コンテンツがデータ レンダリング テンプレートを通じて生成され、フロントエンドが対応するフロントエンド ロジックを?qū)g行しますこれは完全な分離とみなされます。
ノードにはバックエンドのみを擔(dān)當(dāng)させ、jadeは破棄できます。
フロントエンドはネイティブ js を使用して ajax リクエストを?qū)g行してデータを取得し、対応する論理処理を?qū)g行します
express + mongodbを使用すると、URLをデータベースにマッピングできます
———— つまり、URLはデータへのポインタです。
Express + mongodb テクノロジーに Jade のレイヤーを追加するということは、データが Jade を介して流れ、テンプレートと結(jié)合されて HTML データ ストリームになり、その後応答を通じてクライアントに返される必要があることを意味します
フロントエンドとバックエンドの分離とは、データベースから取り出したデータを直接response
に返すか、テンプレートエンジンで加工して返すことを意味します。
(理解:res.json
和 res.render
)
淘寶網(wǎng)のフロントエンドとバックエンドの分離の実踐を參考にすることができます
詳細(xì)については議論の余地がありますが、一般的なパターンは明確に説明されています。その中で述べられているように、「フロントエンドとバックエンドの分離」をどのように分離したいかによって異なります。そしてフロントエンドについての理解。
jadeテンプレートをhtmlに置き換えて、フロントエンドでajaxを使用すれば問題ありません。 。 。 (フロントエンドは靜的リソースに相當(dāng)し、nodejsはWebサーバーとみなすことができます)