[第5回] Node.js Webサーバ

Node.js

 

はじめに

 

皆さん。こんにちは! DreamHanksのエルムです。

今回はNode.js Webサーバについて説明していきます。

前回の記事は[第4回] Node.jsのExportモジュールです。

 

ここでは、シンプルなNode.jsのWebサーバを作成し、HTTPリクエストを処理する方法を学びます。

任意のWebアプリケーションのWebページにアクセスするには、Webサーバーが必要です。例えば、IISはASP.NETウェブアプリケーション用のウェブサーバーであり、ApacheはPHPやJavaウェブアプリケーション用のウェブサーバーです。

Node.jsには、HTTPリクエストを非同期に処理する独自のWebサーバを作成する機能があります。Node.jsのWebアプリケーションを実行するには、IISやApacheを使用することもできますが、Node.jsのWebサーバーを使用することをお勧めします。

 

Node.jsのWebサーバを作成する方法

 

Node.jsを使えば、受信したリクエストを非同期に処理するシンプルなWebサーバを簡単に作ることができます。

次の例は、server.jsファイルに含まれるシンプルなNode.jsのWebサーバーです。

server.js:

 

上の例では、require()関数を使ってhttpモジュールをインポートしています。httpモジュールは、Node.jsのコアモジュールなので、NPMを使ってインストールする必要はありません。次のステップでは、httpのcreateServer()メソッドを呼び出し、リクエストとレスポンスのパラメータでコールバック関数を指定します。ここでは、任意の未使用のポートを指定できます。

 

コマンドプロンプトまたはターミナルウィンドウでnode server.jsコマンドを記述して上記のWebサーバーを実行すると、以下のようなメッセージが表示されます。

 

以上、簡単な手順でNode.jsのWebサーバを作成する方法をご紹介しました。それでは、Node.jsのWebサーバでHTTPリクエストを処理し、レスポンスを送信する方法を見ていきましょう。

 

HTTPリクエストを処理する方法

 

http.createServer()メソッドには、Node.jsから供給されるrequestresponseのパラメータが含まれています。リクエストオブジェクトは、現在のHTTPリクエストに関する情報(URL、リクエストヘッダー、データなど)を取得するために使用します。レスポンスオブジェクトは、現在のHTTPリクエストに対するレスポンスを送信するために使用できます。

次の例は、Node.jsでHTTPリクエストとレスポンスを処理することを示しています。

 

server.js:

 

上記の例では、req.urlを使って現在のリクエストのURLを確認し、それに基づいてレスポンスを送信しています。レスポンスを送信するには、まずwriteHead()メソッドでレスポンスヘッダーを設定し、次にwrite()メソッドでレスポンスボディとして文字列を記述します。最後に、Node.jsのWebサーバはend()メソッドを使ってレスポンスを送信します。

 

上記のWebサーバーを以下のように実行します:

 

ブラウザで http://localhost:5000 にアクセスすると、次のような結果が表示されます。

 

同じように、ブラウザをhttp://localhost:5000/student に向けると、次のような結果が表示されます。

 

JSONレスポンスの送信する方法

 

次の例は、Node.jsのWebサーバーからJSONレスポンスを提供する方法を示しています。

server.js:

 

このようにして、異なるレスポンスを提供するシンプルなウェブサーバーを作ることができます。

 

終わりに

 

今回の記事は以上になります。

ご覧いただきありがとうございます。

 

 

 

コメント