要約: このチュートリアルでは、Express Web フレームワークと Express Hello World アプリの構築方法を学びます。
Express の紹介
Express は、Node.js 用の高速、無作為、最小限の Web フレームワークです。Express は Web アプリケーションの構築に適した機能セットを提供します。
Express を使用すると、以下が可能になります。
- 単一ページおよび複数ページアプリケーションを含む Web アプリケーションを構築する。
- API サーバーを構築する。
Express の利点
- シンプル: Express は、ミニマリスト的なアプローチを提供することで、Web サーバーと API の構築の簡略化に役立ちます。
- 柔軟: Express は無作為であるため、好きなようにアプリケーションを構築できます。
- 活発なコミュニティとエコシステム: Express には広範なドキュメントとサードパーティのライブラリがあり、Web アプリをより簡単かつ迅速に開発できます。
Express Hello World アプリの作成
ステップ 1. ターミナルまたはコマンドプロンプトを開き、express-server
という新しいプロジェクトディレクトリを作成します。
mkdir express-server
cd express-server
Code language: plaintext (plaintext)
ステップ 2. プロジェクトディレクトリ内で npm init --yes
コマンドを実行して、新しい Node.js プロジェクトを初期化します。
npm init --yes
Code language: plaintext (plaintext)
このコマンドにより、依存関係とスクリプトを管理できる package.json
ファイルが作成されます。
ステップ 3. 以下の npm install
コマンドを実行して express
パッケージをインストールします。
npm install express
ステップ 4. package.json
ファイルの type
キーの値を "module"
に設定して、Node.js に ES モジュール を使用するように指示します。
"type": "module",
Code language: JSON / JSON with Comments (json)
さらに、package.json
ファイルの scripts
セクションを以下に変更します。
"scripts": {
"start": "node --watch index.js"
},
Code language: JSON / JSON with Comments (json)
npm start
コマンドを実行すると、node --watch index.js
コマンドが実行されます。--watch
フラグは、ソースコードを変更するたびにサーバーを再起動します。
--watch
フラグを追加しない場合は、コードを変更するたびにサーバーを再起動する必要があります。
--watch
フラグは Node.js 19 以降で使用できることに注意してください。
ステップ 5. 以下のコードを含む index.js
ファイルを作成します。
import express from 'express';
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
Code language: JavaScript (javascript)
ステップ 6. ターミナルを開き、サーバーを実行します。
npm start
Code language: plaintext (plaintext)
ターミナルに次のメッセージが表示されます。
Server is listening on port 3000
これは、サーバーが実行されており、ポート 3000 でリッスンしていることを意味します。Web ブラウザーでページ http://localhost:3000/
を起動すると、Hello, World!
メッセージが画面に表示されます。
Express アプリの仕組み
最初に、express
ライブラリから express
関数をインポートします。
import express from 'express';
Code language: JavaScript (javascript)
express
は Express
アプリのインスタンスを返す関数です。
次に、express()
関数を呼び出して Express
アプリのインスタンスを取得します。
const app = express();
Code language: JavaScript (javascript)
その後、サーバーがリッスンするポート番号を格納する PORT
定数を定義します。
const PORT = 3000;
Code language: JavaScript (javascript)
その後、サイトルート /
への HTTP GET リクエストを処理するルートハンドラーを定義します。
app.get('/', (req, res) => {
res.send('Hi there');
});
Code language: JavaScript (javascript)
get()
メソッドには 2 つのパラメータがあります。
- 最初のパラメータは ルート
/
です。 - 2 番目のパラメータは、2 つのパラメータ (
req
とres
) を持つコールバック関数です。req
とres
はそれぞれrequest
とresponse
の略です。このコールバック関数は ルーターハンドラー と呼ばれます。
req
は HTTP リクエストを表し、res
は HTTP レスポンスを表します。これらは、それぞれ Request
クラスと Response
クラスのインスタンスです。これらのオブジェクトには、HTTP リクエストとレスポンスを処理するための多くの便利なプロパティとメソッドがあります。
この例では、HTTPレスポンスオブジェクトのsend()
メソッドを呼び出して、シンプルなテキストを返しています。
最後に、appに3000
ポートでリクエストをリッスンするように指示します。
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
Code language: JavaScript (javascript)
ExpressアプリからクライアントにJSONを返す
以下に、クライアントにJSONを返す方法を示します。
import express from 'express';
const app = express();
const PORT = 3000;
app.get('/', (req, res) => {
res.send({ message: 'Hello, World!' });
});
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
Code language: JavaScript (javascript)
このコードでは、send()
関数を呼び出して、JSONデータをクライアントに返しています。
res.send({ message: 'Hello, World!' });
Code language: JavaScript (javascript)
Webブラウザでhttp://localhost:3000/
のURLを開くと、単純なテキストではなく、JSONが表示されます。
{
"message": "Hi there"
}
Code language: JSON / JSON with Comments (json)
環境変数の追加
Node.js v20.6.0以降では、process
コアモジュールを使用して、環境変数を設定するための.env
ファイルがサポートされています。
process
コアモジュールには、すべての環境変数を格納するenv
プロパティがあります。Node.jsは自動的にprocess
モジュールをインポートするため、使用前にインポートする必要はありません。
ステップ1.プロジェクトディレクトリに新しい.env
ファイルを作成し、PORT
変数を3000
に設定します。
PORT=3000
Code language: plaintext (plaintext)
アプリでは、proccess
モジュールを使用して、次のようにPORT
変数にアクセスできます。
process.env.PORT
Code language: plaintext (plaintext)
ステップ2.index.js
ファイルを変更して、PORT
変数を使用するようにします。
import express from 'express';
const app = express();
const PORT = process.env.PORT || 3000;
app.get('/', (req, res) => {
res.status(200).send({ message: 'Hello, World!' });
});
app.listen(PORT, () => {
console.log(`Server is listening on port ${PORT}`);
});
Code language: JavaScript (javascript)
しくみ
最初に、PORT
変数を定義し、process.env.PORT
を代入します。PORT
環境変数が利用できない場合、PORT
変数はデフォルトで3000
になります。
const PORT = process.env.PORT || 3000;
Code language: JavaScript (javascript)
次に、listen()
メソッドでPORT
を使用します。
app.listen(PORT, () => {
console.log(`Server is listening on port ${PORT}`);
});
Code language: JavaScript (javascript)
ターミナルに同じメッセージが表示されます。
Server is listening on port 3000
Code language: plaintext (plaintext)
VSコードでRESTクライアントを使用する
VSコードを使用している場合、RESTクライアント拡張機能を使用してHTTPリクエストを行い、エディター内で直接レスポンスを表示できます。
ステップ1.RESTクライアント拡張機能をインストールします。
ステップ2.プロジェクトディレクトリにapi.http
という名前の新しいファイルを作成します。
ステップ3.次のコードを追加して、http://localhost:3000/
にHTTP GETリクエストを行います。
GET http://localhost:3000/
Content-Type: application/json
Code language: HTTP (http)
ステップ4.リクエストを送信をクリックして、HTTPリクエストを行います。

ステップ5.HTTPレスポンスを表示します。

RESTクライアントツール以外にも、Postmanなどの他のRESTクライアントツールを使用してHTTPリクエストを行うことができます。
Express Hello Worldアプリのダウンロード
ステップ1.Express Hello Worldアプリをダウンロードします。
ステップ2.express-server
などのディレクトリに解凍します。
ステップ3.ターミナルまたはコマンドプロンプトを開き、npm installコマンドを実行して依存関係をインストールします。
npm install
ステップ4.npm startを実行して、Expressアプリを実行します。
npm start
まとめ
- Expressは、WebアプリケーションとAPIを構築するための柔軟なWebアプリケーションフレームワークです。
- RESTクライアント拡張機能を使用してHTTPリクエストを行い、HTTPレスポンスをVSコード内で直接表示します。
- 環境変数にアクセスするには、
process.env
を使用します。