Express/express-generator
Express-Generator ハンドブック
[編集]このハンドブックでは、Node.js フレームワークである Express を使用して、アプリケーションの基本構造を迅速に生成するためのツール「express-generator」の使い方を解説します。
必要条件
[編集]以下の環境が必要です:
Express-Generator のインストール
[編集]まず、express-generator をインストールします。
npm install express-generator
インストール後、以下のコマンドで正しくインストールされたかを確認します。
npx express --version 4.16.1
新しいプロジェクトの作成
[編集]以下のコマンドで新しい Express プロジェクトを作成します。
express --view=pug my-app
このコマンドは、my-app/ という名前のディレクトリにプロジェクトを作成します。--view=pug オプションはビューエンジンとして Pug を使用することを指定しています。他のビューエンジン(例: EJS, Handlebars)を指定することもできます。
オプション一覧 オプション 説明 ! -cまたは--view=<engine>ビューエンジンを指定します(dust,ejs,hbs,hjs,pug,twigまたはvash、デフォルトは pug)。--git.gitignoreファイルを作成します。--force既存のディレクトリに対しても強制的に生成します。 --no-viewビューエンジンなしでプロジェクトを生成します。 -vまたは--view使用するビューエンジンを指定します。 -cまたは--css使用するCSSプリプロセッサを指定します(以下詳細)。
-v/--view オプション
[編集]-v または --view オプションを使用して、使用するビューエンジンを指定できます。以下は対応するビューエンジンの例です。
値 説明 pugデフォルトのビューエンジン。簡潔なインデントベースのテンプレートエンジン。 [ejs]JavaScript に馴染みがあり、HTMLとJSの組み合わせで記述可能なビューエンジン。 hbsHandlebars。Mustache ベースのビューエンジンで、テンプレートの再利用が容易。 twigPHPのTwigに似たテンプレートエンジンで、高い柔軟性と拡張性を提供。 nunjucksJinja2(Python)に似た強力なテンプレートエンジン。 mustacheシンプルで論理を持たないテンプレートエンジン。 noneビューエンジンを使用せず、APIサーバーとして利用する場合に選択。
- 例
- EJS を使用する場合
express --view=ejs my-app
-c/--css オプション
[編集]-c オプションを使用すると、CSSプリプロセッサを指定してプロジェクトを生成できます。以下は対応する値の例です。
-c/--cssオプション値 説明 css標準のCSSファイルを使用します(デフォルト)。 sassSass(.scssファイル)を使用します。 lessLessを使用します。 stylusStylusを使用します。
- 例
- Sass を使用する場合
express --css=sass my-app
生成されるディレクトリ構造
[編集]express-generator で生成されたプロジェクトの構造は以下の通りです:
my-app/ ├── app.js ├── bin/ │ └── www ├── public/ │ ├── images/ │ ├── javascripts/ │ └── stylesheets/ ├── routes/ │ ├── index.js │ └── users.js ├── views/ │ ├── error.pug │ ├── index.pug │ └── layout.pug ├── package.json └── ...
このディレクトリ構造は、ルート定義、ビュー、静的ファイルが分離されており、アプリケーション開発に適した設計になっています。
依存パッケージのインストール
[編集]プロジェクトディレクトリに移動し、必要な依存パッケージをインストールします。
cd my-app npm install
アプリケーションの起動
[編集]以下のコマンドでサーバーを起動します。
npm start
ブラウザで http://localhost:3000 にアクセスすると、初期設定された Express アプリが表示されます。
基本的なカスタマイズ
[編集]ルーティングの追加
[編集]新しいルートを追加するには、routes/ ディレクトリに新しいファイルを作成します。
routes/products.jsを作成します:- routes/products.js
import express from 'express'; const router = express.Router(); router.get('/', (req, res) => { res.send('Product List'); }); router.get('/:id', (req, res) => { res.send(`Product ID: ${req.params.id}`); }); export default router;
app.jsにルートを登録します:- app.js
import productsRouter from './routes/products.js'; app.use('/products', productsRouter);
これで、/products および /products/:id にアクセス可能になります。
ビューの編集
[編集]views/ディレクトリ内のテンプレートを編集することで、アプリケーションの見た目をカスタマイズできます。
- 例
views/index.pugを以下のように変更します:- views/index.pug
extends layout block content h1= title p Welcome to the updated Express application!
静的ファイルの利用
[編集]public/ディレクトリに CSS、画像、JavaScript ファイルを配置することで、アプリケーションで使用できます。
- 例
public/stylesheets/style.cssを作成:- public/stylesheets/style.css
body { font-family: Arial, sans-serif; background-color: #f8f9fa; }
これを Pug テンプレートでリンクします:
link(rel='stylesheet', href='/stylesheets/style.css')
その他のビューエンジン
[編集]Express は他のビューエンジンにも対応しています。例えば、EJS を使用する場合は以下のように設定します。
- EJS をインストールします:
npm install ejs
app.jsを編集してビューエンジンを EJS に変更します:- app.js
app.set('view engine', 'ejs');
views/ディレクトリ内にファイルを.ejs拡張子で作成します。
まとめ
[編集]express-generator は、Express アプリケーションの基本構造を迅速に生成するための便利なツールです。-v や -c オプションを活用して、ニーズに応じたカスタマイズを行い、効率的にアプリケーションを構築してください。