web-dev-qa-db-ja.com

Node.jsアプリケーションの承認アプローチと設計パターン

内部エンタープライズソフトウェアプラットフォーム用の複数ページ管理インターフェイスを構築しています。さまざまなAPI、dbクエリ、およびシェルスクリプトを結び付ける多くのグルーロジックを考えてください。

Node.js、エクスプレスフレームワーク(jadeテンプレートを含む)、および認証用のLDAPを使用します。

ノードアプリケーションでの承認の設計パターンとベストプラクティスに関する情報を見つけるのに苦労しています。ユーザーがそのアプローチとそのケアと摂食に精通しているため、できればロールベースのモデルを使用したいと思います。

私はnode.jsが初めてなので、すでにモジュールや人気のあるブログ記事を見たことがあると思い込まないでください。豊富な情報がある可能性が高いので、どこを見ればいいかわかりません。

提供できる情報を事前に感謝します!

78
Dave Snigier

最初の質問に従って、NodeJでの承認プロセスの実装が必要です。 NodeJのAPIの数を調べて使用しました。エンタープライズアプリケーション用の次のAPIを好むでしょう。

次に、NodeJでの実装と開発のアプローチが必要です。

  • NodeJの簡単でお気に入りのデザインパターンとフレームワーク:MVCフレームワーク、 SailsJs すぐに使用できるモジュール式アーキテクチャ。コード管理は、長期的には簡単です(エンタープライズアプリケーションの最も実用的な要件)。簡単なメンテナンス。 SailsJsは Socket.io で事前設定されており、これを使用してプロジェクトでリアルタイムモジュール、ウィジェット、チャットウィジェットを作成できます。

  • Express Expressを使用して、独自のカスタムMVCプロジェクト構造を設計できます。これも人気があり堅牢です。同じものの人気のあるシードプロジェクトは Yeoman で見つけることができます。

  • Redis キャッシングまたはセッション層として。クラウド上のアプリケーションをn番目のインスタンスにスケーリングすることを妨げないため、個別のキャッシングまたはセッションレイヤーを使用することは常に有効です。

  • Redis および Socket.io を使用して、 Geo-location 、user-presence(online/offline)、chatなどのリアルタイム機能を作成できます。 、プッシュ通知など。

  • ORM: ウォーターライン 。簡単なクエリアプローチのため。また、SailsJsの組み込みのデフォルトORMです。 SailsJsを使用しない場合は、 Sequelizejs も使用できます。 DBプロバイダーが提供するネイティブコネクタを使用することをお勧めします。

  • データベース:要件に応じて。 Waterline ORMは、PostgreSQL、MySQL、MongoDBなどをサポートしています。

  • お気に入りのビューエンジン: [〜#〜] ejs [〜#〜] 。プレゼンテーション層を開発するために新しいことを学ぶ必要はありません。また、SailsJsの組み込みのデフォルトビューエンジンでもあるため、SailsJsのファンです。

NodeJsでエンタープライズアプリケーションを作成するためのすべての重要な情報を網羅したと思います。上記のパッケージが最適であるとは言いませんが、共同で、あらゆるエンタープライズシナリオに最適に適合させることができます。他にも既知のパッケージがあり、独自の要件に応じて使用できます。

59
Amreesh Tyagi

開始するための情報を次に示します。

それが簡単に始められることを願っています。

14
zemirco

別のオプションは [〜#〜] casl [〜#〜] を使用することです。これはMongoDBと非常によく統合されています。また、CASLに基づく承認をexpressjsアプリに統合する方法に関する記事があります- https://medium.com/@sergiy.stotskiy/authorization-with-casl-in-express-app-d94eb2e2b73b

2
Sergii Stotskyi

Node-Authorization も良い候補です。このアイデアはSAP(ERPプロバイダー)から借用されており、オブジェクト指向の承認です。また、PassportやExpressなどの他のフレームワークと一緒に使用することもできます。

0
Kai Zhang