web-dev-qa-db-ja.com

なぜAngularJSの代わりにExpressを使用したいのですか?

Expressはサーバー上にあり、Angularはクライアント上にあることを理解していますが、私の知る限り、AngularはExpressができることをすべて実行できます。

  • ルーティング
  • データベースと対話する

AngularJSアプリをNode.jsで提供するにはExpressが必要なようですが、よくわかりません。

つまり、AngularJSアプリにExpressを追加するメリットは何ですか?

41
user883807

サーバー側で行うべきこと(つまり、AngularではなくExpress)があります。最も顕著なのはユーザー入力の検証です。Angularはクライアント側であるため、改ざんされる可能性があります。

また、Webアプリ(モバイルアプリなど)以外のアクセスタイプを提供したい場合は、とにかくAPIが必要になるでしょう-Expressはこれを行うことができます、Angularしないでください。

最後に、データベースアクセス-通常AngularアプリはCRUD操作を実行するために何らかのバックエンドに接続する必要があります。FirebaseなどのホストされたDBを使用するか、後者のシナリオはより一般的であり、そのためにはExpress(または同様の)が必要です。

42
kamituel

ExpressとAngularJSは相互に除外することはなく、異なる目的に使用されます-実際、両方を使用するのはまったく問題ありません-すべてのサーバーサイドロジックで表現し、Angularクライアントサイドロジックで表現します。

18
dark_ruby

Expressは、AngularJSのサービス/ファクトリが使用するAPIをホストするために使用できます。 AngularJSをMVCと見なし、ExpressのAPIをSOAと見なすことができます。

14
zs2020

サーバーから制御したいものがたくさんあります。そして、それはサーバー側のフレームワークが姿を現す場所です。

Webアプリは、互いにリンクされたHTMLページだけではありません。実装する必要がある他の多くのものがあります

  • モデル検証。
  • モデルの一貫性を保つ。複数のユーザーがいつでも同じモデルにアクセスし、変更することもできます。
  • リソースアクセスの制御。
  • ワークフローをトリガーします。
  • ビジネスの論理。

他のそのようなことはサーバーフレームワークを必要とします。したがって、前述のように、AngularJSのようなクライアント側フレームワークはサーバー側フレームワークを補完します。

2
Chandermani