3

私はAngular 2 Universalを使用した同形アプリケーションの開発に取り組んでいますが、頭の中で明確にできないことがあります。

バックとフロントを別々のモジュールに置くのは良い習慣だと私は理解していますが、MEANアプリケーションで作業する場合、それは一般的なパターンではないようです。

そのため、スケーリングできるプロジェクトを開始しようとしています。将来的にはサーバー側のレンダリングを実装したいと考えていますが、どのアプローチを採用すべきかわかりません。正直なところ、バックエンドとフロントエンドの両方を別々に保持する方が快適だと思いますが、そうであれば、後でサーバー側のレンダリングを実装することは可能でしょうか?

index.htmlその上、両側で複製すると仮定すると、最初のサーバーレンダリングが完了したときに、サーバーはクライアントに制御を委任できますか? つまり、彼らが同じプロジェクトに属していないという事実を考えると、その委任がどのように機能するか想像できません。

前もって感謝します。

4

1 に答える 1

3

私が理解しているように、あなたはUIのレンダリングについて話している.これは、サーバー上で事前レンダリング作業を行ったとしても、アプリケーションのフロントエンド部分です.

この事前レンダリングは最適化にすぎません。別のコード レイヤーに保持することもできますが、同形の JavaScript の全体的な考え方は、クライアントとサーバーで同じコードを再利用することだと思います。このようにコードやテンプレートを複製しようとするのは良い考えではありません (決してそうではありません)。

本当に物事を分離したい場合は、アプリケーションをより多くのサービスに分割することを検討してください。

  • バックエンド サーバー アプリケーション - すべてのビジネス ロジックを保持するデータベース上のある種の残りの API (最初の node.js アプリケーション)
  • フロントエンド サーバー アプリケーション - HTTP リクエストを介して API からデータを取得し、サーバー側で事前レンダリングを行う別の node.js アプリケーション (2 番目の node.js アプリケーション)
  • フロントエンド - ブラウザで実行されるすべてのコード

このようにして、最初は「フロントエンド サーバー アプリケーション」を「フロントエンド」と「バックエンド サーバー アプリケーション」の間の単純なプロキシにすることができます。後で、サーバー側のレンダリングで拡張できます。

重要な注意: サーバーで事前レンダリングせずにアプリケーションを開発し、これを後の段階で追加する場合は、ブラウザー側のすべての JavaScript 機能がサーバー上で機能するわけではないことを考慮する必要があります (たとえば、操作ネイティブ DOM 要素を使用) については、angular ユニバーサル readme のベスト プラクティスのセクションを参照してください。

于 2016-06-11T22:23:33.740 に答える