Node.js は、Chrome V8 エンジン上に構築された JavaScript ランタイム環境であり、Web アプリケーション開発で広く使用されています。 Node.js では、HTTP サーバーを簡単に構築し、ブラウザーを通じてサーバー上の Web ページにアクセスできます。この記事では、Node.jsを使用してHTTPサーバーを構築する方法を紹介します。
まず、Node.js 環境をローカルにインストールする必要があります。 Node.js 公式 Web サイト https://nodejs.org/ にアクセスして、最新バージョンをダウンロードしてインストールできます。インストールが完了したら、コマンド ラインに次のコマンドを入力して、インストールが成功したかどうかを確認できます。
node -v
Node.js のバージョン番号が正しく表示されれば、インストールは成功しています。
Node.js を使用した HTTP サーバーの作成は非常に簡単です。 Node.js の組み込み「http」モジュールを JavaScript ファイルに導入し、サーバーを作成して、指定されたポートをリッスンするだけです。以下は簡単な例です:
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World! '); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
上記のコードは HTTP サーバーを作成し、ポート 3000 をリッスンします。クライアントがサーバーにアクセスすると、文字列「Hello World!」を返します。
HTTP サーバーを起動したら、ブラウザを使用してサーバーにアクセスできます。ブラウザのアドレス バーに「http://localhost:3000」と入力すると (サーバーがローカルで実行されていない場合は、「localhost」をサーバーの IP アドレスに置き換えてください)、ブラウザに「Hello World!」という文字列が表示されるのがわかります。
上記の例は最も単純な例にすぎません。実際、HTTP リクエストを処理するときは、リクエストヘッダーとリクエストボディを使用して、適切な応答を生成します。 Node.js の http モジュールは、リクエストを処理するための API を提供します。たとえば、要求された URL アドレスは req.url を通じて取得でき、要求されたメソッドは req.method を通じて取得できます。以下は、異なる URL アドレスに応じて異なるメッセージを返す例です。
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); if (req.url === '/about') { res.end('This is about page'); } else if (req.url === '/contact') { res.end('This is contact page'); } else { res.end('Hello World! '); } }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
ブラウザで「http://localhost:3000/about」にアクセスすると、ブラウザに「これは about ページです」というメッセージが表示されます。 " 文字列; "http://localhost:3000/contact" にアクセスすると、ブラウザに表示される "これは連絡先ページです" 文字列; "http://localhost:3000" にアクセスすると、ブラウザに " こんにちは世界!」という文字列。
GET リクエストの処理に加えて、POST リクエストを処理し、クライアントからサーバーに渡されたデータを保存することもできます。 Node.js の http モジュールは、POST リクエストを処理するための API も提供します。以下は簡単な POST リクエスト処理の例です:
const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { if (req.method === 'POST') { let body = ''; req.on('data', chunk => { body += chunk.toString(); }); req.on('end', () => { console.log(`Received data: ${body}`); res.end('Data received'); }); } else { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World! '); } }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
HTTP リクエストを処理するとき、上記のコードはまずリクエスト メソッドが POST であるかどうかを判断し、POST である場合はデータ転送イベントを監視し、転送されたデータを保存します。 body.変数にデータを格納し、データ送信完了後に出力します。クライアント HTML ファイルでは、