【Node.js】POSTデータの取得

Node.jsでPOSTデータを取得する方法を入門者向けにサンプルコード付きでまとめました。

GETパラメータの取得・パース

Postデータとは、HTMLのformタグで送信されるデータです。
複数のWebページ間でデータを相互にやりとりする方法として、「HttpPost」というものがあります。
「HttpRequest」内にPostデータを埋め込むことができます。
また、Requestを受けとったWebページは、Postデータを取得して反映することができます。

今回は、Node.jsでPOSTデータの取得し、パース(解析)してみます。

サンプルコード

サンプルプログラムのソースコードです。

var http = require('http');

var server = http.createServer(function(req, res) {
  if (req.method == 'POST') {
    var body = '';
    // data受信イベントの発生時に断片データ(chunk)を取得
    // body 変数に連結
    req.on('data', function(chunk) {
        body += chunk;
    });
    
    // 受信完了(end)イベント発生時
    req.on('end', function() {
      console.log(body);
      res.end();
    });
  }
}).listen(8080);

実行手順

①ターミナル(Windowsならコマンドプロンプト)を開きます。

② 以下のコマンドを実行します。
※Webサーバー側の起動

node <index.jsのファイルパス>
注意事項
※1 <index.jsのファイルパス>はindex.jsを配置した場所によって適宜変更
※2 Windowsならカレントディレクトリは「C:\Users\ユーザー名」

③ 手順②とは別に、もう1つターミナル(Windowsならコマンドプロンプト)を開きます。
※クライアント側用

④ 以下のコマンドを実行します。
※クライアント側でWebサーバーへアクセス

curl -X POST -d 'name=Savar' http://localhost:8080/

⑤ 手順②で開いたターミナルに取得したPOSTデータが出力されます。

'name=Savar'
関連ページ
1 【Node.js入門】サンプル集と使い方まとめ
関連記事