Node Heroシリーズの:Node.jsプロジェクトファイル組織チュートリアル

2955 ワード

本文はNode Heroシリーズのチュートリアルの第7部です.これらの章を通じて、Nodeの使用方法を学びます.jsはソフトウェア製品を発表した.
ほとんどだjsフレームワークは固定的なディレクトリ構造を提供していないので、最初から正しい方法を採用することは課題かもしれません.このチュートリアルを通じて、ノードを正しく組織する方法を学びます.jsプロジェクトは、応用規模の増加時に混乱を避ける.
このシリーズのすべての記事:
  • Node Heroシリーズ之:Nodeの使用を開始する.js
  • Node Heroシリーズ之:npmチュートリアル
  • Node Heroシリーズ之:Node.js非同期プログラミング
  • Node Heroシリーズの:あなたの最初のNode.js HTTPサーバ
  • Node Heroシリーズ之:データベースチュートリアル
  • Node Heroシリーズ之:Node.js requestモジュールチュートリアル
  • Node Heroシリーズ之:Node.jsプロジェクトファイル組織チュートリアル
  • Node Heroシリーズの:Passportを使用する.jsやってみろjs認証
  • Node Heroシリーズ之:Node.jsユニットテストチュートリアル
  • Node Heroシリーズ之:Node.jsデバッグチュートリアル
  • Node Heroシリーズ之:Node.jsセキュリティチュートリアル
  • Node Heroシリーズ:HerokuまたはDockerを使用してNodeを導入する方法.js
  • Node Heroシリーズ之:Node.jsアプリケーションモニタリング
  • Node.jsプロジェクト構造の5つの基本原則
    Node.jsプロジェクトには多くの組織方式があり、それぞれの方式にはそれぞれメリットとデメリットがある.しかし、私たちの経験によると、開発者が望んでいる結果は同じです.コードが簡潔で、新しい機能を簡単に追加することができます.
    RisingStackの過去数年間、さまざまな規模の効率的なNodeアプリケーションを構築する機会があり、プロジェクト組織のベストプラクティスについて多くの見解を得ました.
    私たちは5つの簡単な指導原則をまとめた.js開発の過程で私たちはこれらの原則を実施しています.これらの原則を守ろうとすれば、あなたのプロジェクトはほとんど危険ではありません.
    原則1:ロール組織ファイルではなく機能に基づいて
    ディレクトリ構造は次のようになります.
    //    
    .
    ├── controllers
    |   ├── product.js
    |   └── user.js
    ├── models
    |   ├── product.js
    |   └── user.js
    ├── views
    |   ├── product.hbs
    |   └── user.hbs
    
    

    この方法の問題は次のとおりです.
  • 製品ページがどのように機能しているかを理解するために、3つの異なるディレクトリを開いて切り替えなければなりません.
  • モジュールを導入するときは、長いパスを書きます.require('../../controllers/user.js')
  • 逆に、製品の機能、ページ、コンポーネントに基づいて構造を整理することができます.このように理解すると、
    //   
    .
    ├── product
    |   ├── index.js
    |   ├── product.js
    |   └── product.hbs
    ├── user
    |   ├── index.js
    |   ├── user.js
    |   └── user.hbs
    
    

    原則2:論理をindex.js文書に入れない
    これらのファイルは、次のような関数をエクスポートするためにのみ使用されます.
    // product/index.js
    var product = require('./product')
    
    module.exports = {
      create: product.create
    }
    
    

    原則3:テストファイルを機能実現コードに近い位置に置く
    テストコードは、モジュールの出力が予想に合っているかどうかを確認するためだけでなく、モジュールドキュメント*として機能します(次の章では、テストに関する詳細を学びます).したがって,テストファイルが機能実装コードに隣接している場合,理解が容易である.
    混乱を避けるために、追加のテストファイルを別のtestフォルダに配置します.
    .
    ├── test
    |   └── setup.spec.js
    ├── product
    |   ├── index.js
    |   ├── product.js
    |   ├── product.spec.js
    |   └── product.hbs
    ├── user
    |   ├── index.js
    |   ├── user.js
    |   ├── user.spec.js
    |   └── user.hbs
    
    

    原則4:configディレクトリの使用configディレクトリでプロファイルを保存します.
    .
    ├── config
    |   ├── index.js
    |   └── server.js
    ├── product
    |   ├── index.js
    |   ├── product.js
    |   ├── product.spec.js
    |   └── product.hbs
    
    

    原則5:大段のnpmスクリプトをscriptsディレクトリに入れる
    packageです.jsonファイルの額外相スクリプトは、個別のディレクトリを作成します.
    .
    ├── scripts
    |   ├── syncDb.sh
    |   └── provision.sh
    ├── product
    |   ├── index.js
    |   ├── product.js
    |   ├── product.spec.js
    |   └── product.hbs