2016-04-01 6 views
3

NodeJs/Expressで角2がどこにあるのかわかりません。 AngularとNodeを一緒に使用するか、Webプロジェクトにそれらの1つのみを使用できますか?大規模プロジェクトのための角2またはNodeJs/Express

+3

Angular&Nodeはお互いに本当にうまく動作します。彼らは別のものです、角度 - >フロントエンド(クライアント)、NodeJS - >バックエンド(サーバー) – Tushar

+3

あなたは混乱していると思います。 Angularはフロントエンドフレームワークです。 Node/Expressはバックエンドフレームワークです。彼らは素晴らしい一緒に働く。彼らは全く衝突しません。 – Bolza

+0

NodeJsもサーバー側で動作するJavascriptですが、Angular 2 ... Nodejsを使ってこれを行うのですか? – Satch3000

答えて

3

角度がことができますNode.jsを必要とせずに完全なWebアプリケーションを構築する

Node.jsとexprなしあなたはウェブサーバーを整理する必要があります。あなたは好みがある場合は、Apache、Nginxなどを使うことができます。

ただし、フロントエンドが通信するバックエンドまたはAPIを作成する場合は、Node.jsを導入してAPIを開発することができます。しかし、他のフレームワークやツールを使用することもできます。

また、いくつかのノードモジュールをビルドツールと組み合わせて使用​​することもできます(例:Grunt)を使用して、CSS、JS、イメージなどのフロントエンド資産を最適化します。これにより、ビルドの完了後にクライアントに提供される静的資産の状態をより詳細に制御できます。

要するに、Node.jsを必要とせずにAngularを使用して完全なWebアプリケーションを構築できますが、Nodeを使用するとプロジェクト資産をより詳細に管理できます。フロントエンド。

1

角2はフロントエンドコード用であり、ノードは通常バックエンド用です。

しかし、ノードはフロントエンドを処理するために使用できます。 (ほとんどの人はこれを知らない、または忘れている)。また、ノードランナーとしてNodeを使用して、クライアントサイドコード、プロセス前クライアントサイドコードなどを細分化します。

たとえば、LESSまたはSASSファイルやSTYLUSファイルをオンザフライでCSSファイルに変換したり、CSSファイルがブラウザに提供されます。

ライブリロードは、ブラウザの更新を行うことなく、CSSまたはコード変更のライブアップデートを実行します。

タスクランナーは、Bowerスクリプトの依存関係を自動挿入できます。一般的なノードのタスクランナーは、クライアントサイドコードを提供するこのプロセスを簡素化し、GruntとGulpです。

明らかに、運用環境では、タスクランナーを使用しません。タスクランナーは、開発目的またはビルド目的のために用意されています。

開発環境では、ノードのGulpを使用しています。ビルドにはGulpも使用します。しかし、生産時には、NGINX上の静的なビルド生成ファイルを提供します。

これの欠点は、適切なパイプラインを確保するための努力の量です。

2

角度とノードが異なる Angularは、クライアント側でMVC構造を使用できるようにする非常に強力なフロントエンドフレームワークです。Node.jsはサーバーサイドでのJavascriptの実装であり、 (ノードでは、非同期タスクを行うことができますが、スクリプトでWebページを生成するだけでなく、PHPで行うことができないwebsocketにも使用できます)。

しかし、両方ともJavascriptを使用し、ネイティブにJsonをリクエストに使用するため、Webアプリケーションにとっては優れたソリューションです。

現在のところ、クライアント側でangular2を使用したPHPプロジェクトで作業しています。 MVC構造のため、jQueryや他のフレームワークよりも優れていますが、PHPで使用するときには、いくつか手配しなければなりません(例えば、角度付きのPOSTリクエストを送信すると、データはJSONでエンコードされます。理解していない。だから私は私のクライアント側の簡単なURLエンコード文字列にJSONオブジェクトを変換機能に使用される...)私はあなたの質問に答えを期待

ヴィンセントを

+0

PHPと[json](http://php.net/manual/en/book.json.php) – Drew

+0

しかし、私にとっては、POSTリクエストを解析するのは難しいです(UrlEncodedを使用すると、単純です$ _POSTとfilter_inputがありますが、JSONの場合は$ HTTP_RAW_POST_DATAを使用してjson_decodeで解析し、それを検証する必要があります) – Vincent