Node.jsの一番メジャーなフレームワーク「Express」について解説
公開日: 2023/6/20
Node.jsは、JavaScriptを使ってサーバーサイドの開発を行うことができるランタイム環境です。
その中でも、特に人気があるのがフレームワークのExpressです。
この記事では、Expressについて解説していきます。
1. Expressとは何か?
Expressは、Node.jsのためのWebフレームワークです。
WebアプリケーションやAPIの開発をより簡単かつ迅速に行うことができます。
Node.jsには標準でhttpモジュールがあるため、Expressもこのモジュールをベースにしています。
しかし、httpモジュールでは実現が難しいことがExpressにはできるようになっています。
2. Expressのインストールと使い方
Expressを使うためには、まずNode.jsがインストールされている必要があります。
次に、以下のコマンドを使って、Expressをインストールします。
これで、Expressがインストールされました。
Expressを使うには、まずrequire()関数でexpressモジュールを読み込みます。
これで、Expressの準備が整いました。次に、ルーティングを設定することができます。
例えば、以下のように書くことで、GETリクエストに対して"Hello World"というレスポンスを返すことができます。
このように、Expressは非常に簡単に使うことができます。
次に、以下のコマンドを使って、Expressをインストールします。
npm install express
これで、Expressがインストールされました。
Expressを使うには、まずrequire()関数でexpressモジュールを読み込みます。
const express = require('express');
const app = express();
これで、Expressの準備が整いました。次に、ルーティングを設定することができます。
例えば、以下のように書くことで、GETリクエストに対して"Hello World"というレスポンスを返すことができます。
app.get('/', (req, res) => {
res.send('Hello World');
});
このように、Expressは非常に簡単に使うことができます。
3. Expressのディレクトリ構造
Expressでは、ディレクトリ構造を決めることができます。通常は、以下のような構造になります。
app.jsはアプリケーションのエントリーポイントであり、ルーティングやミドルウェア、テンプレートエンジンなどの設定を行います。
routes/は、ルーティングを行うためのファイルが格納されるディレクトリです。
index.jsやusers.jsのようなファイル名で、それぞれのルーティングを定義します。
views/は、テンプレートエンジンで使われるテンプレートファイルが格納されるディレクトリです。
index.ejsやusers.ejsのようなファイル名で、それぞれのテンプレートを定義します。
public/は、静的ファイル(画像やCSSファイルなど)が格納されるディレクトリです。
stylesheets/やimages/のようなサブディレクトリを作成し、ファイルを保存します。
app.js
routes/
index.js
users.js
views/
index.ejs
users.ejs
public/
stylesheets/
style.css
images/
logo.png
app.jsはアプリケーションのエントリーポイントであり、ルーティングやミドルウェア、テンプレートエンジンなどの設定を行います。
routes/は、ルーティングを行うためのファイルが格納されるディレクトリです。
index.jsやusers.jsのようなファイル名で、それぞれのルーティングを定義します。
views/は、テンプレートエンジンで使われるテンプレートファイルが格納されるディレクトリです。
index.ejsやusers.ejsのようなファイル名で、それぞれのテンプレートを定義します。
public/は、静的ファイル(画像やCSSファイルなど)が格納されるディレクトリです。
stylesheets/やimages/のようなサブディレクトリを作成し、ファイルを保存します。
4. Expressの特徴
Expressには以下のような特徴があります。
4-1. ルーティング
ルーティングは、アプリケーションにリクエストが来た時に、そのリクエストに対してどの処理を行うかを決定することです。
Expressでは、このルーティングを非常に簡単に設定することができます。
例えば、以下のように書くことで、GETリクエストに対して"Hello World"というレスポンスを返すことができます。
Expressでは、このルーティングを非常に簡単に設定することができます。
例えば、以下のように書くことで、GETリクエストに対して"Hello World"というレスポンスを返すことができます。
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello World');
});
app.listen(3000, () => {
console.log('Example app listening on port 3000!');
});
4-2. ミドルウェア
ミドルウェアとは、リクエストとレスポンスの間で処理を行うための関数のことです。
Expressでは、これを使って様々な処理を実装することができます。
例えば、以下のように書くことで、全てのリクエストに対して、リクエストが来た時間をログに出力することができます。
Expressでは、これを使って様々な処理を実装することができます。
例えば、以下のように書くことで、全てのリクエストに対して、リクエストが来た時間をログに出力することができます。
const express = require('express');
const app = express();
app.use((req, res, next) => {
console.log(`Time: ${Date.now()}`);
next();
});
app.get('/', (req, res) => {
res.send('Hello World');
});
app.listen(3000, () => {
console.log('Example app listening on port 3000!');
});
4-3. テンプレートエンジン
テンプレートエンジンとは、HTMLを生成するための仕組みです。
Expressには、JadeやEJSなどの様々なテンプレートエンジンがあります。
これを使うことで、HTMLを動的に生成することができます。
例えば、以下のように書くことで、EJSを使って変数を表示することができます。
このコードでは、"Hello World"というメッセージをEJSのテンプレートに渡し、ブラウザに表示されるようにしています。
Expressには、JadeやEJSなどの様々なテンプレートエンジンがあります。
これを使うことで、HTMLを動的に生成することができます。
例えば、以下のように書くことで、EJSを使って変数を表示することができます。
const express = require('express');
const app = express();
app.set('view engine', 'ejs');
app.get('/', (req, res) => {
const message = 'Hello World';
res.render('index', { message });
});
app.listen(3000, () => {
console.log('Example app listening on port 3000!');
});
このコードでは、"Hello World"というメッセージをEJSのテンプレートに渡し、ブラウザに表示されるようにしています。
5. まとめ
Expressは、ルーティングやミドルウェア、テンプレートエンジンなど、様々な機能を持ったNode.jsのWebフレームワークです。
Expressを使うことで、簡単にWebアプリケーションを開発することができます。
本記事では、Expressの基本的な使い方やディレクトリ構造、ミドルウェアについて解説しました。
Expressを使ってWebアプリケーションを開発する際には、これらの機能を上手く活用することが大切です。
また、Expressは多くの拡張機能(ミドルウェアやテンプレートエンジン)が提供されており、Webアプリケーション開発をさらに便利にすることができます。
ぜひ、公式ドキュメントや他のチュートリアルを参考にして、Expressの使い方をマスターしてください。