最近、フロントエンド開発の知識を活かしてバックエンドにも挑戦したいという声をよく聞きます。JavaScriptの知識があれば、Node.jsでのバックエンド開発は思ったよりハードルが低いという事例が多く報告されています。
特にExpressというフレームワークを使えば、シンプルなコードで基本的なAPIが作れます。この記事では、Node.js Express API 作成の具体的な手順を、実際に動かせる形で解説していきます。プログラミング初心者でも理解できるよう、各ステップを丁寧に説明しますので、ぜひ手を動かしながら読み進めてください。
事前準備:必要なツールのインストール
APIを作る前に、開発環境を整えましょう。必要なツールは3つだけです。
Node.jsとnpmのインストール
まず、Node.jsの公式サイト(https://nodejs.org/)から、LTS版(推奨版)をダウンロードしてインストールします。Node.jsをインストールすると、パッケージ管理ツールのnpmも自動的にインストールされます。
インストール後、ターミナル(WindowsならコマンドプロンプトかPowerShell)で以下のコマンドを実行して、正しくインストールされたか確認しましょう。
バージョン番号が表示されれば成功です。v18以上のバージョンであれば問題なく動作するケースが多いです。
エディタの準備
コードを書くためのエディタとして、Visual Studio Code(VSCode)が広く使われています。無料で使えて、JavaScriptの開発に必要な機能が充実しています。
APIテストツールの用意
作成したAPIが正しく動作するか確認するため、PostmanかThunderClientを用意しておくと便利です。VSCodeを使う場合は、拡張機能のREST Clientも手軽で使いやすいという声が多くあります。
ステップ1:プロジェクトの初期化とExpressのインストール
環境が整ったら、実際にプロジェクトを作成していきます。
プロジェクトフォルダの作成
- 作業用のフォルダを作成します(例:my-express-api)
- ターミナルでそのフォルダに移動します
package.jsonの作成
Node.jsプロジェクトの設定ファイルを作成します。
-yオプションを付けると、すべての質問にデフォルト値で答えてくれるため、すぐにpackage.jsonが作成されます。
Expressのインストール
次にExpressフレームワークをインストールします。
このコマンドを実行すると、node_modulesフォルダが作成され、Expressと関連するパッケージがダウンロードされます。
プロジェクト構成の確認
この時点で、以下のような構成になっているはずです。
プロジェクト構成をシンプルに保つことが、後々の拡張性につながると言われています。これは業界のベストプラクティスとして広く認識されている考え方です。
ステップ2:基本的なAPIサーバーの実装
いよいよコードを書いていきます。まずはシンプルなAPIサーバーから始めましょう。
server.jsファイルの作成
プロジェクトフォルダ直下にserver.jsというファイルを作成し、以下のコードを記述します。
コードの解説
各部分の役割を確認しておきましょう。
- require(‘express’):Expressモジュールを読み込み
- app = express():Expressアプリケーションを初期化
- app.use(express.json()):JSON形式のリクエストボディを解析するミドルウェア
- app.get():GETリクエストに対するルート(エンドポイント)を定義
- app.listen():指定したポートでサーバーを起動
サーバーの起動
ターミナルで以下のコマンドを実行します。
「Server is running on http://localhost:3000」と表示されれば成功です。ブラウザでhttp://localhost:3000にアクセスすると、JSONレスポンスが返ってくるのが確認できます。
ステップ3:REST API機能の実装
基本的なサーバーが動いたら、本格的なREST APIを作成していきます。
データ管理用の配列を用意
実際の開発ではデータベースを使いますが、学習段階では配列でデータを管理する方法がわかりやすいとされています。
CRUD操作のエンドポイント実装
REST APIの基本であるCRUD(Create, Read, Update, Delete)操作を実装します。
APIのテスト方法
サーバーを再起動して、各エンドポイントをテストします。
- GET http://localhost:3000/api/tasks – 全タスク取得
- POST http://localhost:3000/api/tasks – 新規タスク作成(ボディに{“title”: “新しいタスク”}を送信)
- PUT http://localhost:3000/api/tasks/1 – タスク更新
- DELETE http://localhost:3000/api/tasks/1 – タスク削除
PostmanやThunderClientを使えば、これらのリクエストを簡単に送信できます。
よくある失敗とその対処法
実際にAPI開発を進める中で、初心者がつまずきやすいポイントをまとめました。
エラーハンドリングの不足
多くの初心者が適切なエラー処理を実装していないケースが報告されています。データが見つからない場合や、不正なリクエストが来た場合に、適切なHTTPステータスコードとエラーメッセージを返すようにしましょう。
CORSエラーへの対応
フロントエンドアプリからAPIを呼び出す際、CORS(Cross-Origin Resource Sharing)エラーが発生することがあります。corsパッケージをインストールして対応しましょう。
非同期処理での例外処理
データベースを使う場合など、非同期処理が増えると例外処理が複雑になります。async/awaitを使う場合は、必ずtry-catchで囲むか、エラーハンドリングミドルウェアを実装しましょう。
まとめ
Node.js Express API 作成の基本的な流れを解説しました。環境構築からCRUD操作まで、一通り実装できたのではないでしょうか。
ExpressはシンプルでありながらJavaScriptの柔軟性を活かせるフレームワークです。次のステップとしては、データベース(MongoDBやPostgreSQL)との連携、認証機能の実装、バリデーションの追加などに挑戦してみてください。
この記事で作成したコードは基礎ですが、実務レベルのAPIを作る土台になります。ぜひ自分なりにカスタマイズして、オリジナルのAPIを作ってみてください。
よくある質問
Q. ExpressとNode.jsの違いは何ですか?
Node.jsはJavaScriptの実行環境で、ExpressはNode.js上で動くWebフレームワークです。Node.jsだけでもサーバーは作れますが、Expressを使うことでルーティングやミドルウェアの管理が格段に楽になります。
Q. 本番環境にデプロイする際の注意点はありますか?
環境変数を使ってポート番号や設定を管理すること、エラーログを適切に記録すること、セキュリティ対策(helmet、rate-limitなど)を導入することが重要です。また、本番では必ずHTTPSを使用しましょう。
Q. データベースなしでどこまで開発できますか?
配列を使った今回の方法でも、プロトタイプやMVP(Minimum Viable Product)レベルのアプリケーションは十分作れます。ただし、サーバーを再起動するとデータが消えるため、永続化が必要な場合はデータベース導入を検討してください。


コメント