MENU

Node.js Express API 開発入門完全ガイド【2025年最新版】

Node.js Express API 開発入門の概要図
# Node.js Express API 開発入門完全ガイド【2025年最新版】 Node.jsとExpress.jsは、Web API開発において非常に強力な組み合わせです。本記事では、Node.jsとExpress.jsを用いたAPI開発の基礎から応用までを、最新のベストプラクティスに基づいて解説します。API開発経験がない初心者の方から、Node.jsの知識を深めたい中級者の方まで、幅広い層の読者にとって役立つ情報を提供することを目指します。この記事を読むことで、基本的なAPIの作成、ルーティング、ミドルウェアの利用、エラーハンドリング、そしてテストまで、API開発に必要な知識と実践的なスキルを習得できるでしょう。 ## 目次 1. はじめに 2. Node.jsとExpress.jsのセットアップ 3. 最初のAPIを作成する 4. ルーティングとリクエストハンドリング 5. ミドルウェアの活用 6. エラーハンドリング 7. テストとデプロイ ## 1. Node.jsとExpress.jsのセットアップ まず、Node.jsとnpm(Node Package Manager)がインストールされていることを確認してください。Node.jsの公式サイト ([https://nodejs.org/](https://nodejs.org/)) からダウンロードできます。 次に、新しいプロジェクトディレクトリを作成し、`npm init -y` コマンドを実行して、`package.json` ファイルを作成します。
🐚 BASH コードをクリックして選択
mkdir my-express-api
cd my-express-api
npm init -y
その後、Express.jsをインストールします。
🐚 BASH コードをクリックして選択
npm install express
これで、Express.jsを開発に利用する準備が整いました。 : Express.jsのセットアップ画面のスクリーンショット ## 2. 最初のAPIを作成する 基本的なAPIを作成してみましょう。`index.js`というファイルを作成し、以下のコードを記述します。
📜 JAVASCRIPT コードをクリックして選択
const express = require('express');
const app = express();
const port = 3000;

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

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});
このコードは、`http://localhost:3000` にアクセスすると “Hello World!” を返すシンプルなAPIです。`app.get()` は、GETリクエストを処理するルーティングを設定しています。`req` はリクエストオブジェクト、`res` はレスポンスオブジェクトです。 このファイルを保存後、ターミナルで `node index.js` を実行してAPIを起動します。ブラウザで `http://localhost:3000` にアクセスすると、”Hello World!” と表示されるはずです。 ## 3. ルーティングとリクエストハンドリング APIをより複雑にするには、複数のルーティングとリクエストハンドリングが必要です。例えば、ユーザーのリストを表示するAPIを作成してみましょう。
📜 JAVASCRIPT コードをクリックして選択
const express = require('express');
const app = express();
const port = 3000;

const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 3, name: 'Charlie' }
];

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

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});
このコードは、`/users` エンドポイントにGETリクエストを送信すると、`users`配列の内容をJSON形式で返します。`res.json()` メソッドは、JavaScriptオブジェクトをJSON形式に変換してレスポンスとして送信します。 また、特定のユーザーの情報を取得するAPIも作成できます。
📜 JAVASCRIPT コードをクリックして選択
const express = require('express');
const app = express();
const port = 3000;

const users = [
  { id: 1, name: 'Alice' },
  { id: 2, name: 'Bob' },
  { id: 3, name: 'Charlie' }
];

app.get('/users/:id', (req, res) => {
  const userId = parseInt(req.params.id);
  const user = users.find(u => u.id === userId);

  if (user) {
    res.json(user);
  } else {
    res.status(404).send('User not found');
  }
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});
この例では、`:id` はパラメータです。`/users/2` にアクセスすると、IDが2のユーザー情報が返されます。ユーザーが見つからない場合は、404エラーを返します。 : APIのルーティング画面の例 ## 4. ミドルウェアの活用 ミドルウェアは、リクエストとレスポンスの間に挟まれ、処理を行う関数です。ロギング、認証、エラーハンドリングなど、様々な用途で使用できます。 例えば、リクエストのログを記録するミドルウェアを作成してみましょう。
📜 JAVASCRIPT コードをクリックして選択
const express = require('express');
const app = express();
const port = 3000;

const logger = (req, res, next) => {
  console.log(`${req.method} ${req.url}`);
  next();
};

app.use(logger);

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

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});
`app.use(logger)` は、すべてのリクエストに対して `logger` 関数を実行します。 また、JSON形式のリクエストボディを解析するミドルウェア `express.json()` もよく使用されます。
📜 JAVASCRIPT コードをクリックして選択
const express = require('express');
const app = express();
const port = 3000;

app.use(express.json());

app.post('/users', (req, res) => {
  const newUser = req.body;
  console.log(newUser);
  res.send('User created');
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});
この例では、POSTリクエストのボディをJSONとして解析し、`req.body` に格納します。 ## 5. エラーハンドリング APIのエラーハンドリングは、ユーザーエクスペリエンスとシステムの安定性を向上させるために重要です。 例えば、404エラーハンドリングを追加してみましょう。
📜 JAVASCRIPT コードをクリックして選択
const express = require('express');
const app = express();
const port = 3000;

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

app.use((req, res, next) => {
  res.status(404).send('Not Found');
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`);
});
このコードは、存在しないエンドポイントにアクセスした場合に、404エラーを返します。 また、より詳細なエラー情報を返すことも可能です。
📜 JAVASCRIPT コードをクリックして選択
const express = require('express');
const app = express();
const port = 3000;

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

app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).send('Something broke!');
});
このコードは、サーバー内部エラーが発生した場合に、500エラーを返します。 : APIのエラーハンドリングの例 ## 6. テストとデプロイ APIのテストは、品質を保証するために不可欠です。JestやMochaなどのテストフレームワークを使用して、ユニットテストやインテグレーションテストを実行できます。 デプロイに関しては、Heroku、AWS、Google Cloud Platformなどのクラウドプラットフォームを利用できます。 ## まとめ この記事では、Node.jsとExpress.jsを用いたAPI開発の基礎を解説しました。ルーティング、ミドルウェア、エラーハンドリングといった重要な概念を理解し、実際にコードを記述することで、API開発のスキルを習得できたはずです。API開発は、継続的な学習と実践が必要です。積極的にAPI開発に挑戦し、より高度なスキルを身につけてください。 **実践へのアクションプラン:** * 簡単なAPIを自分で作成してみる * エラーハンドリングを強化する * テストフレームワークを利用してテストを自動化する * クラウドプラットフォームにAPIをデプロイする **関連リソース:** * Express.js 公式ドキュメント: [https://expressjs.com/](https://expressjs.com/) * Node.js 公式ドキュメント: [https://nodejs.org/](https://nodejs.org/) * Jest 公式ドキュメント: [https://jestjs.io/](https://jestjs.io/)

※ 本記事の情報は執筆時点のものです。最新情報については各公式サイトをご確認ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次