--- Title: 'Expressのwebアプリのディレクトリー構成(2018年2月版) #express #nodejs' Keywords: - express - nodejs Author: hiro_y Web: 'https://mimemo.io/m/8agmD4p2J2oRjYz' --- [iruca.co](https://iruca.co)の開発をしばらく続けてきて、大体こんな感じでディレクトリーの構成をするようになった、という話。Node.jsでExpressを使っている。`src/actions`ができたのは`src/routes`に処理を書いていくと長くなりがちだから、ファイル単位で分離しやすいように。 - 📁 .circleci - config.yml: CircleCI用 - 📁 assets - 📁 img: AIファイルとか、画像作成用のリソース - 📁 js: babelしてminifyする前のクライアント側JS - 📁 sass: Sassファイル - 📁 etc - 📁 db - 📁 migration: DB変更時のmigration用SQLファイル - tables.sql: テーブル等の定義が書かれているDDL - 📁 ssl: SSL証明書発行用のCSRファイルとか(現在使ってない) - 📁 public: webに公開されるフォルダー - 📁 css: Sassファイルはコンパイルされてここに入る - 📁 img: 画像置き場(svgが多い) - 📁 js: JSファイルはbabel、minifyされてここに入る - 📁 src - 📁 actions: 実際の処理が書かれてるファイル。routesから呼び出されて実行される - 📁 batch: バッチ処理用のスクリプト置き場 - 📁 lib: 共通部品たち - 📁 model: DBアクセスやロジックに関わる共通部品たち - 📁 routes: ルーティング定義、middlewareもここでかませる - app.js: 処理の起点となるファイル - 📁 static - maintenance.html: メンテナンス用静的ファイル。S3にデプロイ - 📁 tests: mocha/chaiによるテストファイル - 📁 views: テンプレートファイル置き場 - gulpfile.js: Gulp用。Webpack使ってない - package.json: npm用だけどパッケージ管理はyarn使ってる - Procfile: Herokuでの起動スクリプト定義 - yarn.lock: パッケージ管理