アルアカ - Arcadia Academia

Arcadia Academiaは「エンジニアリングを楽しむ」を合言葉に日本のデジタル競争力を高めることをミッションとするテックコミュニティです。

【初心者向け】Express.jsの基本をわかりやすく解説!

Featured image of the post

Node.jsを使ってWebアプリケーションを開発する際、効率的なルーティングやミドルウェアの活用が求められます。その中で最も人気のあるフレームワークの一つが Express.js です。本記事では、Express.jsの基本的な特徴や使い方について、初心者向けにわかりやすく解説します。


[目次を開く]

1. Express.jsとは?

Express.js(以下Express)は、Node.js上で動作する 軽量なWebアプリケーションフレームワーク です。主に以下のような特徴を持っています。

✅ Express.jsの特徴
  • シンプルで軽量:最小限の機能に絞られており、必要なものを自由に追加できる。
  • ルーティング機能が強力:URLごとの処理を簡単に設定可能。
  • ミドルウェアが豊富:リクエスト処理を柔軟にカスタマイズできる。
  • REST APIの開発が容易:シンプルなAPIを素早く構築可能。

2. Express.jsのインストール

Expressを使用するには、まずNode.jsをインストールしておく必要があります。

Node.jsがインストール済みであることを確認したら、以下の手順でExpressをインストールします。

✅ プロジェクトの作成とExpressのインストール
mkdir my-express-app
cd my-express-app
npm init -y
npm install express

上記のコマンドで、Node.jsのプロジェクトを作成し、Expressをインストールできます。


3. 簡単なサーバーを作成

Expressを使って基本的なサーバーを作成してみましょう。

server.js の作成

プロジェクトのルートディレクトリに server.js を作成し、以下のコードを記述します。

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello, Express!');
});

app.listen(3000, () => {
    console.log('Server is running on http://localhost:3000');
});
✅ サーバーの起動

ターミナルで以下のコマンドを実行し、サーバーを起動します。

node server.js

ブラウザで http://localhost:3000 にアクセスすると "Hello, Express!" と表示されれば成功です。

Image in a image block

4. ルーティングの基本

Expressでは、リクエストのURLやメソッドに応じて処理を分けることができます。

✅ ルーティングの例
app.get('/about', (req, res) => {
    res.send('About Page');
});

app.post('/submit', (req, res) => {
    res.send('Form submitted');
});

上記のコードでは、/about にGETリクエストを送ると "About Page" が表示され、/submit にPOSTリクエストを送ると "Form submitted" が返されます。


5. ミドルウェアの活用

Expressのミドルウェアを使うことで、リクエストとレスポンスの処理を柔軟に拡張できます。

✅ 代表的なミドルウェア
  • express.json():JSONのリクエストボディをパース
  • express.static():静的ファイルの提供
  • morgan:リクエストのログを出力
✅ ミドルウェアの実装例
const express = require('express');
const app = express();
const morgan = require('morgan');

app.use(express.json());
app.use(morgan('dev'));

app.post('/data', (req, res) => {
    console.log(req.body);
    res.json({ message: 'Data received', data: req.body });
});

app.listen(3000, () => {
    console.log('Server is running on http://localhost:3000');
});

このコードでは、リクエストのJSONデータを受け取って処理し、ログを出力する機能を追加しています。


6. テンプレートエンジンの使用

WebアプリでHTMLを動的に生成する場合、テンプレートエンジンを使うと便利です。Expressでは EJS などのテンプレートエンジンを簡単に組み込めます。

✅ EJSの導入
npm install ejs
✅ EJSを使ったページの表示
app.set('view engine', 'ejs');

app.get('/hello', (req, res) => {
    res.render('hello', { name: 'Express' });
});

このようにすると、views/hello.ejs をテンプレートとして表示できます。


7. REST APIの作成

ExpressはREST APIの開発にも最適です。

✅ シンプルなAPIの例
const users = [
    { id: 1, name: 'Alice' },
    { id: 2, name: 'Bob' }
];

app.get('/users', (req, res) => {
    res.json(users);
});

app.get('/users/:id', (req, res) => {
    const user = users.find(u => u.id == req.params.id);
    user ? res.json(user) : res.status(404).send('User not found');
});

このAPIでは、ユーザー一覧の取得や特定のユーザーの取得が可能になります。


8. まとめ

Express.jsは、シンプルかつ柔軟なWebフレームワーク で、初心者でも扱いやすいのが特徴です。本記事で紹介した基本的な使い方を押さえれば、簡単なWebアプリやREST APIを開発できるようになります。

✅ 本記事のおさらい
  • ExpressはNode.js向けの軽量フレームワーク
  • インストール後、数行のコードでサーバーを作成可能
  • ルーティングやミドルウェアを活用して機能を拡張
  • テンプレートエンジンを使えば動的なページ生成も可能
  • REST APIの開発にも適している

Expressをマスターして、効率的なWeb開発を進めていきましょう!

プログラミング学習でお悩みですか?

現役エンジニアがあなたの学習をマンツーマンでサポートします。

  • 学習の進め方がわからない
  • ポートフォリオの作り方を知りたい
  • 現場で使える技術を学びたい
まずは30分の無料相談

相談は完全無料・オンラインで気軽に

あなたを爆速で成長させるメンタリングプログラムはこちら

メンタープログラムバナー

プログラミングを学ぶならテックアカデミー

テックアカデミー
無料相談はこちら