「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
Node.jsを学ぶ(その5・POSTに対応する・前編)
フォームの処理を行う際に、フォームのデータをPOSTで送信することも多いです。
そこで、Node.jsでPOSTに対応する方法を紹介します。
1.formidableのインストール
Node.jsの標準機能だけでも、POSTで送信されたデータを処理することは可能です。
ただ、GETと比べるとコードが複雑になります。
そこで、「Formidable」というモジュールを使うことにします。
Formidableは、POSTで送信されたフォームのデータを読み込んで、その後の処理で扱いやすいようにしてくれるモジュールです。
Node.jsでは、ユーザーによって、数多くのモジュールが作られています。Formidableもその1つです。
また、現在のNode.jsでは、「npm install モジュール名」のコマンドで、モジュールを簡単にインストールすることができます。
Formidableモジュールをインストールするには、以下の手順を取ります。
- プログラムのソースコードを配置したいディレクトリを、カレントディレクトリにします。
- 「npm install formidable」のコマンドを入力します。
すると、インターネットからFormiableがダウンロードされ、カレントディレクトリにインストールされます。
なお、本記事執筆時点のNode.jsはバージョン0.10.4です。
一方、本記事執筆時点でFormidableをインストールしようとすると、「Node.jsの0.9.0以前が必要」といった警告メッセージが表示されました。
ただ、こちらで試した限りでは、Node.jsの0.10.4でもFormidableを使うことができました。
2.POSTされたデータの処理
formidableを使って。POSTされたデータをパースして処理する基本的な書き方は、以下のようになります。
var formidable = require('formidable'); ... function listener(request, response) { ... var form = new formidable.IncomingForm(); form.parse(request, function(err, fields, files) { パースされたデータの処理 }); ... }
1行目のrequire関数で、formidableを読み込み、変数formidableに割り当てます。
そして、5行目のIncomingFormメソッドでフォームのオブジェクトを作り、6行目のparseメソッドでデータをパースします。
パースされたデータは、parseメソッドのパラメータのコールバック関数に渡されます。
コールバック関数のパラメータのfieldsは、フォームの個々のフィールドの名前と値に対応するオブジェクトになっています。
また、filesのパラメータは、アップロードされたファイルの情報が入ったオブジェクトになります。
例えば、フォームの中に、name属性が「foo」のinput要素があるとします。
この場合、コールバック関数に渡されたfieldsには、fooというプロパティが作られます。
そして、このfooプロパティの値が、フォームから送信された値になります。