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:ロール組織ファイルではなく機能に基づいて
ディレクトリ構造は次のようになります.
この方法の問題は次のとおりです.製品ページがどのように機能しているかを理解するために、3つの異なるディレクトリを開いて切り替えなければなりません. モジュールを導入するときは、長いパスを書きます. 逆に、製品の機能、ページ、コンポーネントに基づいて構造を整理することができます.このように理解すると、
原則2:論理を
これらのファイルは、次のような関数をエクスポートするためにのみ使用されます.
原則3:テストファイルを機能実現コードに近い位置に置く
テストコードは、モジュールの出力が予想に合っているかどうかを確認するためだけでなく、モジュールドキュメント*として機能します(次の章では、テストに関する詳細を学びます).したがって,テストファイルが機能実装コードに隣接している場合,理解が容易である.
混乱を避けるために、追加のテストファイルを別の
原則4:
原則5:大段のnpmスクリプトを
packageです.jsonファイルの額外相スクリプトは、個別のディレクトリを作成します.
ほとんどだjsフレームワークは固定的なディレクトリ構造を提供していないので、最初から正しい方法を採用することは課題かもしれません.このチュートリアルを通じて、ノードを正しく組織する方法を学びます.jsプロジェクトは、応用規模の増加時に混乱を避ける.
このシリーズのすべての記事:
Node.jsプロジェクトには多くの組織方式があり、それぞれの方式にはそれぞれメリットとデメリットがある.しかし、私たちの経験によると、開発者が望んでいる結果は同じです.コードが簡潔で、新しい機能を簡単に追加することができます.
RisingStackの過去数年間、さまざまな規模の効率的なNodeアプリケーションを構築する機会があり、プロジェクト組織のベストプラクティスについて多くの見解を得ました.
私たちは5つの簡単な指導原則をまとめた.js開発の過程で私たちはこれらの原則を実施しています.これらの原則を守ろうとすれば、あなたのプロジェクトはほとんど危険ではありません.
原則1:ロール組織ファイルではなく機能に基づいて
ディレクトリ構造は次のようになります.
//
.
├── controllers
| ├── product.js
| └── user.js
├── models
| ├── product.js
| └── user.js
├── views
| ├── product.hbs
| └── user.hbs
この方法の問題は次のとおりです.
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