Node.jsとExpressは、JavaScriptを使用してサーバーサイドのアプリケーションを開発するための非常に人気のあるツールです。この技術は、シンプルで強力なAPIを提供し、高速でスケーラブルなウェブアプリケーションの開発を可能にします。本記事では、Node.jsとExpressについて、基本的な概念から実際のアプリケーション作成まで、完全かつ包括的に解説します。
Node.jsとは?
Node.jsは、JavaScriptランタイム環境であり、サーバーサイドのアプリケーションを構築するために使用されます。元々は、クライアントサイドで実行されることが多かったJavaScriptを、サーバーでも動かすことができるようにするために作られました。これにより、フルスタック開発者は、フロントエンドとバックエンドの両方をJavaScriptで開発できるようになります。

Node.jsは、V8 JavaScriptエンジン(Google Chromeで使用されているエンジン)をベースにしており、非同期I/O(入力/出力)を扱うことができるため、非常に高いパフォーマンスを誇ります。これにより、大量のリクエストを効率よく処理でき、スケーラブルなシステムを構築することが可能です。
Expressとは?
Expressは、Node.jsの上で動作する軽量のウェブフレームワークであり、サーバーアプリケーションを迅速に構築するために設計されています。Expressは、ルーティングやミドルウェアなど、ウェブアプリケーションを構築する際に必要な機能を簡単に追加することができます。特に、シンプルで使いやすいAPIを提供し、アプリケーション開発の効率を大幅に向上させます。
Expressは、HTTPリクエストを処理し、レスポンスを返す機能を簡単に実装できるため、RESTful APIやウェブアプリケーションを作成する際に非常に便利です。また、Node.jsの非同期処理を活かして、高速でスケーラブルなアプリケーションを構築できます。
Node.jsとExpressのセットアップ
まず、Node.jsとExpressを使って簡単なアプリケーションを作成するための手順を紹介します。
1. Node.jsのインストール
Node.jsをインストールするには、公式サイトからインストーラーをダウンロードし、インストールを行います。
公式サイト: https://nodejs.org/
インストール後、ターミナルやコマンドプロンプトで以下のコマンドを実行して、インストールが成功したか確認できます。
bashnode -v npm -v
これにより、Node.jsとnpm(Node.jsのパッケージマネージャ)のバージョンが表示されます。
2. プロジェクトの作成
次に、プロジェクト用のディレクトリを作成し、そこに移動してnpmで初期化を行います。
bashmkdir myapp
cd myapp
npm init -y
これにより、package.json
というファイルが作成され、プロジェクトの依存関係を管理することができます。
3. Expressのインストール
次に、Expressをプロジェクトにインストールします。以下のコマンドを実行します。
bashnpm install express --save
これで、node_modules
フォルダにExpressがインストールされ、package.json
ファイルに依存関係が追加されます。
4. 最初のExpressアプリケーションの作成
次に、app.js
というファイルを作成し、基本的なExpressアプリケーションを実装します。
javascriptconst express = require('express');
const app = express();
// ルートパスにアクセスしたときの処理
app.get('/', (req, res) => {
res.send('Hello, World!');
});
// サーバーをポート3000で起動
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
上記のコードは、/
パスにアクセスすると「Hello, World!」と表示するシンプルなサーバーを立ち上げます。
サーバーを起動するには、以下のコマンドを実行します。
bashnode app.js
これで、ブラウザでhttp://localhost:3000
にアクセスすると、「Hello, World!」が表示されます。
Expressのルーティング
Expressでは、HTTPリクエストに対してどのように処理を行うかをルートで指定します。上記の例では、app.get()
メソッドを使用して、GETリクエストに対するレスポンスを設定しました。他にも、POST、PUT、DELETEなど、HTTPメソッドに対応する処理を記述できます。
以下は、複数のルートを設定する例です。
javascriptapp.get('/about', (req, res) => {
res.send('About Page');
});
app.post('/contact', (req, res) => {
res.send('Contact Form Submitted');
});
このように、Expressは非常に簡単にルーティングを設定でき、柔軟にリクエストを処理することができます。
ミドルウェア
Expressでは「ミドルウェア」を使用することで、リクエストとレスポンスの間に処理を追加できます。ミドルウェアは、リクエストを処理する前後でさまざまな操作を行うための関数です。
例えば、リクエストのログを表示するミドルウェアを作成することができます。
javascriptapp.use((req, res, next) => {
console.log(`${req.method} ${req.url}`);
next(); // 次のミドルウェアまたはルートに処理を渡す
});
上記のコードは、すべてのリクエストに対してメソッドとURLをコンソールに表示します。
ExpressでAPIを作成する
Expressを使用してRESTful APIを作成する方法を紹介します。例えば、ユーザー情報を管理するAPIを作成します。
javascriptconst users = [
{ id: 1, name: 'John Doe' },
{ id: 2, name: 'Jane Smith' }
];
// GETリクエストでユーザー情報を返す
app.get('/api/users', (req, res) => {
res.json(users);
});
// POSTリクエストで新しいユーザーを追加する
app.post('/api/users', (req, res) => {
const newUser = { id: users.length + 1, name: req.body.name };
users.push(newUser);
res.status(201).json(newUser);
});
このように、Expressを使うことで、簡単にRESTful APIを構築できます。
終わりに
Node.jsとExpressは、JavaScriptを使って効率的にウェブアプリケーションやAPIを開発するための強力なツールです。Node.jsの非同期処理と、Expressのシンプルで柔軟なフレームワークを組み合わせることで、スケーラブルで高パフォーマンスなアプリケーションを構築できます。
これらをマスターすることで、フルスタック開発やバックエンド開発のスキルを大いに向上させることができるでしょう。