Node.js は JavaScript をベースにしたサーバーサイド プログラミング言語であり、その登場により Web 開発がより迅速かつ効率的になりました。 Node.js の主な利点は、I/O 操作を処理できることと、適応性、拡張性、使いやすさです。この記事では、Node.js を使用してリクエストを処理する方法とテクニックについて説明します。
1. Node.js の HTTP モジュール
Node.js の HTTP モジュールは、HTTP リクエストを処理する方法を提供し、シンプルで効率的な Web サーバーを迅速に構築するのに役立ちます。 HTTP モジュールには、いくつかの重要なクラス、関数、イベントが含まれています。
次は、HTTP モジュールを使用して Web サーバーを作成する例です:
const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World!'); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000'); });
上記のコードは、ローカル 3000 ポートで実行される Web サーバーを作成します。クライアントが要求するたびに、サーバー リクエストを送信すると、サーバーは「Hello World!」応答を返します。
2. リクエスト処理プロセス
Node.js のリクエスト処理プロセスは、次の図に示すように非常に単純です。 #上の図に示すように、クライアントが Web サーバーにリクエストを送信すると、サーバーは HTTP モジュールの createServer 関数を呼び出して HTTP サーバー インスタンスを作成することを示します。このとき、サーバーは指定されたポートをリッスンし、クライアントの接続要求を待ちます。クライアントが接続を確立すると、リクエスト ヘッダー、リクエスト本文など、クライアントから送信されたすべての情報を含むリクエスト オブジェクト (リクエスト) が作成されます。サーバーは、リクエスト オブジェクトに基づいてリクエストを処理し、応答オブジェクト (レスポンス) を生成してクライアントに送信し、クライアントはレスポンスの受信後に接続を閉じます。
3. リクエストの処理
Node.js では、リクエスト ヘッダーやリクエスト本文など、リクエストを処理するためのさまざまな情報を req オブジェクトを通じて取得できます。同時に、Node.js のルーティング (ルーター) の概念も理解する必要があります。ルーティングは、アプリケーションがリクエストにどのように応答するかを決定する方法であり、主に URL パスや HTTP リクエスト メソッドが含まれます。 次に、Get リクエストと Post リクエストの処理例を示します。const http = require('http'); const querystring = require('querystring'); http.createServer((req, res) => { let method = req.method; let url = req.url; let body = ''; req.on('data', (chunk) => { body += chunk; }); req.on('end', () => { let params; if (method == 'GET') { params = url.split('?')[1]; console.log(params); } else { params = querystring.parse(body); console.log(params); } res.end('Hello ' + params.name); }); }).listen(3000, () => { console.log('Server running at http://localhost:3000'); });
const http = require('http'); const createError = require('http-errors'); const express = require('express'); const cors = require('cors'); const morgan = require('morgan'); const helmet = require('helmet'); const app = express(); // 添加错误管理中间件 app.use((err, req, res, next) => { if (err && err.status == 404) { res.status(404).send('404 not found'); } else { res.status(500).send('500 Internal Server Error'); } }); // 使用中间件 app.use(cors()); app.use(morgan('combined')); app.use(helmet()); // 定义路由 app.get('/', (req, res) => { res.send('Hello World!'); }) // 监听端口 http.createServer(app).listen(3000, () => { console.log('Server running at http://localhost:3000'); });
以上がNode.js を使用してリクエストを処理する方法とテクニックの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。