ホームページ > ウェブフロントエンド > フロントエンドQ&A > nodejsはポストリクエストパラメータを受け取ります

nodejsはポストリクエストパラメータを受け取ります

WBOY
リリース: 2023-05-25 15:34:38
オリジナル
2846 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート