Node.js は、サーバー側の JavaScript 実行環境として、HTTP リクエストを処理するときに非常に一般的です。その中でも、投稿リクエストのパラメータを受け取るのは非常に基本的なことです。次に、Node.js を使用してポスト リクエスト パラメーターを受信して解析する方法を学びます。
1. Node.js の HTTP リクエスト
Node.js では、組み込みの http モジュールを使用して HTTP サーバーを作成できます。シンプルな HTTP サーバーを作成する簡単な例を次に示します。
const http = require('http'); const server = http.createServer((req, res) => { res.end('Hello World!'); }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
このサーバーは、単純に Hello World!
文字列で応答します。 curl
コマンドを使用してテストできます。
curl http://localhost:3000/
curl コマンドの実行後、サーバーが Hello World!
文字列で応答することがわかります。
2. HTTP リクエストでの POST リクエスト
HTTP リクエストでは、GET リクエストと POST リクエストの 2 つが最も一般的で基本的なリクエスト メソッドです。 HTTP GET リクエストの場合、そのパラメータは URL で渡されますが、POST リクエストの場合は、リクエストの本文でキーと値のペアのデータが送信されます。
もちろん、GET リクエストの本文にパラメーターを含めることもできますが、このメソッドは安全ではありません。 POST リクエストを使用すると、この状況を回避できます。
3. Node.js は POST リクエストを処理します
サーバーが POST リクエストを受信すると、リクエスト本文からパラメータを取得する必要があります。 Node.js を使用して POST リクエストを処理する最も一般的な方法は次のとおりです:
const http = require('http'); const server = http.createServer((req, res) => { if(req.method === 'POST') { let postData = ''; req.on('data', chunk => { postData += chunk.toString(); }); req.on('end', () => { console.log('postData:', postData); res.end('Hello World!'); }) } else { res.end('Hello World!'); } }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
ここでの主な考え方は、クライアントが POST リクエストを送信するときに、req
で をリッスンするということです。 data
イベントと end
イベント。data
イベントでは、リクエストの本文を継続的に読み取り、データを文字列の形式で変数に保存します。 end
イベントがトリガーされた後、受信したパラメーターを処理できます。
4. リクエスト パラメーターを解析する
POST リクエストのパラメーターを取得した後、パラメーターを解析する必要があります。一般に、POST リクエストのパラメーターはキーと値の形式で送信されます。これは、共通フォーム データで使用されるスタイルです。
Node.js では、querystring
モジュールを使用してこれらのパラメーターを解析できます。以下に例を示します。
const http = require('http'); const querystring = require('querystring'); const server = http.createServer((req, res) => { if(req.method === 'POST') { let postData = ''; req.on('data', chunk => { postData += chunk.toString(); }); req.on('end', () => { console.log('postData:', postData); const body = querystring.parse(postData); console.log('body:', body); res.end('Hello World!'); }) } else { res.end('Hello World!'); } }); server.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
上の例では、最初に Node.js の組み込み querystring
モジュールを使用しました。 end
イベントでは、受信した POST パラメータを querystring.parse()
メソッドを使用して解析し、表示するためにコンソールに出力します。
5. Express を使用して POST リクエストを処理する
Node.js の組み込み http モジュールを使用して POST リクエストを処理することに加えて、人気のあるサーバー側フレームワーク Express を使用することもできます。 Express では、body-parser
ミドルウェアを使用して、POST リクエストのパラメーターを処理できます。 Express と body-parser
を使用した例を次に示します。
const express = require('express'); const bodyParser = require('body-parser'); const app = express(); // 将JSON请求体解析中间件,放在路由之前 app.use(bodyParser.json()); // 处理URL编码请求体的中间件 app.use(bodyParser.urlencoded({extended: false})); app.post('/', (req, res) => { console.log('body:', req.body); res.send('Hello World!'); }); app.listen(3000, () => { console.log('Server running at http://localhost:3000/'); });
この例では、最初に Express フレームワークを使用し、中間ソフトウェアで body-parser
を使用して、 POSTリクエストのパラメータを処理します。 post
ルートでは、req.body
を通じて POST リクエストのパラメーターを直接取得し、コンソールと応答に出力できます。
概要
Node.js で POST リクエストを処理するには、Node.js の組み込み http モジュールまたは人気のあるフレームワーク Express を使用し、パラメータの解析と処理を実装する必要があります。初心者の場合、一般的なフレームワークの使用を検討する前に、まず Node.js で http モジュールの使用方法を理解することが最善です。同時に、POST リクエストを処理するときは、送信されたパラメータが第三者によって取得されないようにセキュリティの問題も考慮する必要があります。
以上がnodejsはポストリクエストパラメータを受け取りますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。