Expressjs-best-practices

提供:Dev Guides
移動先:案内検索

ExpressJS-ベストプラクティス

DjangoやRailsが物事やファイル構造などを定義した方法とは異なり、Expressは定義された方法に従っていません。 これは、好きな方法でアプリケーションを構築できることを意味します。 しかし、アプリケーションのサイズが大きくなると、明確に定義された構造を持っていない場合、それを維持することは非常に困難です。 この章では、アプリケーションを構築するために一般的に使用されるディレクトリ構造と懸念事項の分離について説明します。

最初に、ノードおよびExpressアプリケーションを作成するためのベストプラクティスについて説明します。

  • 常に npm init を使用してノードプロジェクトを開始します。
  • 依存関係は常に*-save または-save-dev *でインストールしてください。 これにより、別のプラットフォームに移動した場合、_npm install_を実行してすべての依存関係をインストールできます。
  • 小文字のファイル名とcamelCase変数に固執します。 npmモジュールを見ると、名前は小文字でダッシュで区切られています。 これらのモジュールが必要な場合は、いつでもキャメルケースを使用してください。
  • node_modulesをリポジトリにプッシュしないでください。 代わりに、npmは開発マシンにすべてをインストールします。
  • config ファイルを使用して変数を保存する
  • ルートを独自のファイルにグループ化および分離します。 たとえば、REST APIページで見た映画の例のCRUD操作を取り上げます。

ディレクトリ構造

次に、Expressのディレクトリ構造について説明します。

ウェブサイト

Expressには、アプリケーションを作成するためのコミュニティ定義の構造がありません。 以下は、Webサイトで主に使用されるプロジェクト構造です。

test-project/
   node_modules/
   config/
      db.js               //Database connection and configuration
      credentials.js      //Passwords/API keys for external services used by your app
      config.js           //Other environment variables
   models/               //For mongoose schemas
      users.js
      things.js
   routes/               //All routes for different entities in different files
      users.js
      things.js
   views/
      index.pug
      404.pug
        ...
   public/               //All static content being served
      images/
      css/
      javascript/
   app.js
   routes.js              //Require all routes in this and then require this file in
   app.js
   package.json

Expressを使用してWebサイトを構築する方法は他にもあります。 MVCデザインパターンを使用してWebサイトを構築できます。 詳細については、次のリンクをご覧ください。

[[1]]

and,

[[2]]

RESTful API

APIは設計が簡単です。パブリックまたはビューのディレクトリは必要ありません。 次の構造を使用してAPIを構築します-

test-project/
   node_modules/
   config/
      db.js               //Database connection and configuration
      credentials.js      //Passwords/API keys for external services used by your app
   models/               //For mongoose schemas
      users.js
      things.js
   routes/               //All routes for different entities in different files
      users.js
      things.js
   app.js
   routes.js              //Require all routes in this and then require this file in
   app.js
   package.json

yeoman generatorを使用して同様の構造を取得することもできます。