5

Express と Angularjs を使用して Node.js でアプリを作成しようとしています。

AngularJS がすべてのランディング リクエストを処理できるようにすることは可能ですか? Node.js は純粋に API 用ですか? つまり、Node.js で記述されたすべてのルートは次のようになります。

app.get('/api/users', users.showAll);
app.post('/api/users', users.create);
app.get('/api/users/fb/:fbId', users.findByFb);
app.get('/api/users/:userId', users.show);
app.put('/api/users/:userId', users.update);
app.del('/api/users/:userId', users.del);

また、AngularJS はそれ自体で URL を解決できます (例: localhost/users/Some-Name?)。

この 2 つを統合する際に従うべきベスト プラクティスは何ですか?

また、AngularJS と Node.js アプリを 2 つの異なるアプリケーションに分離することをお勧めしますか? それを行うにはどのような方法がありますか?

前もって感謝します!!

4

1 に答える 1

6

明らかに、アプリケーションの設計とニュアンスによって、どの程度正確にセットアップする必要があるかが決まりますが、AJAX リクエストを node.js サーバー側 API に返す単一ページの Web アプリケーションを Angular で実行することは確かに可能です。私は、まさにこの方法で、中小規模のアプリを数多く作成してきました。

Node.js は、設計した方法で API を処理できますが、angular.js アプリケーションをブートストラップし、追加の javascript および css ライブラリをロードする HTML ページを表示するために、ユーザーが最初にヒットするノードの初期ルートが必要になります。必要になるだろう。そのルートを定義し、ノード アプリケーションで静的リソースをセットアップして、ブラウザーがこれらのものを読み込んで angular アプリをスピンアップできるようにします。

angular アプリケーション自体は、エクスプレス アプリの静的リソース フォルダーに存在する JavaScript ファイルに含まれます。通常、 /js/myNgApp.js のようなもので開始できますが、コントローラー、ディレクティブ、サービスなどを独自の js ファイルに分離することで、よりエキゾチックにすることができます。これは後で行うことができます。

Angular アプリがロードされてブラウザーで実行されたら、Angular で$resource サービスを使用して ajax URL をノードの API に定義し、Angular クライアントにこれらへの get または post (またはその他の) 要求を実行させる必要があります。 URL。

アプリでセキュリティが必要になる場合は、Angular アプリケーションをロードする前にページと URL として実装する必要があります。これに役立つ Express 用のセキュリティ フレームワークがあります。私はパスポートを使用します。

Chrome では、開発者ツール (特にネットワーク タブ) があなたの親友になります。

于 2013-08-18T04:21:21.313 に答える