プロジェクトに合ったフォルダ構成を選択
Node.js プロジェクトのフォルダ構成
├── app
│ ├── controllers
│ ├── models
│ ├── routes
│ └── views
├── bin
│ └── www
├── config
│ └── default.json
├── node_modules
├── package.json
└── README.md
各ディレクトリ詳細
app
- アプリケーションのメインコードを格納します。
- サブディレクトリは以下の通りです。
- controllers: コントローラーファイルを格納します。
- models: モデルファイルを格納します。
- routes: ルーティングファイルを格納します。
bin
- 実行可能なファイルを格納します。
- 一般的には、
www
という名前のファイルがあり、これがアプリケーションの起動スクリプトとなります。
config
- 一般的には、
default.json
という名前のファイルがあり、データベース接続情報やポート番号などが設定されます。
node_modules
- プロジェクトで使用している Node.js モジュールを格納します。
npm install
コマンドでインストールされます。
package.json
- プロジェクトに関するメタ情報を格納します。
- プロジェクト名、バージョン、依存関係モジュールなどが記述されます。
README.md
- プロジェクトの概要、インストール方法、使用方法などが記述されます。
その他のフォルダ構成
上記以外にも、プロジェクトの規模や複雑性に応じて、以下のディレクトリを追加することもあります。
- public: 静的ファイルを格納します。
- tests: テストコードを格納します。
- docs: ドキュメントを格納します。
Node.js プロジェクトのフォルダ構成は、プロジェクトの規模や複雑性によって異なります。しかし、上記のディレクトリ構成を参考に、プロジェクトに合ったフォルダ構成を設計することが重要です。
app/controllers/index.js
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send('Hello, World!');
});
module.exports = router;
app/routes/index.js
const express = require('express');
const router = express.Router();
const indexController = require('../controllers/index');
router.use('/', indexController);
module.exports = router;
bin/www
#!/usr/bin/env node
const app = require('../app');
app.listen(3000, () => {
console.log('App listening on port 3000!');
});
package.json
{
"name": "my-app",
"version": "1.0.0",
"description": "A simple Node.js application",
"main": "bin/www",
"dependencies": {
"express": "^4.17.1"
}
}
このコードを実行すると、http://localhost:3000
にアクセスすると "Hello, World!" という文字が表示されます。
上記はあくまでサンプルコードであり、プロジェクトの要件に合わせてコードを変更する必要があります。
また、Node.js プロジェクトの開発には、さまざまなフレームワークやライブラリを使用することができます。これらのフレームワークやライブラリを使用すると、より効率的に開発を進めることができます。
Node.js プロジェクトのフォルダ構成:他の方法
MVC パターンは、Model-View-Controller の略で、ソフトウェア設計のパターンの一つです。このパターンを適用すると、以下の 3 つのディレクトリにコードを分割することができます。
この方法は、比較的シンプルなプロジェクトに適しています。
ドメイン駆動設計は、ドメインと呼ばれるビジネスロジックを単位にコードを分割する設計手法です。この手法を適用すると、以下のディレクトリ構成になります。
- domain: ドメインロジックを格納します。
- application: アプリケーションロジックを格納します。
- infrastructure: インフラストラクチャコードを格納します。
ネストされたディレクトリ
プロジェクトが大きくなってきた場合は、ディレクトリをさらにネストさせて整理することができます。
例えば、app
ディレクトリを以下のようにネストさせることができます。
├── app
│ ├── api
│ │ └── v1
│ │ └── controllers
│ │ └── models
│ └── web
│ └── views
この方法により、コードをより細かく分類することができます。
フレームワーク固有のディレクトリ構成
Express などのフレームワークには、独自のディレクトリ構成が推奨されている場合があります。
例えば、Express の場合は以下のディレクトリ構成が推奨されています。
├── app
│ └── routes
│ └── index.js
├── bin
│ └── www
├── config
│ └── default.json
├── node_modules
├── package.json
└── public
└── index.html
フレームワークを使用する場合は、フレームワークの推奨するディレクトリ構成に従うことをおすすめします。
Node.js プロジェクトのフォルダ構成は、プロジェクトの規模や複雑性、使用しているフレームワークによって異なります。
上記に紹介した方法は、あくまでも例です。プロジェクトの要件に合わせて、最適なフォルダ構成を選択してください。
node.js