formidable は、受信したフォームデータを解析し、オブジェクトに変換するパッケージです。connectパッケージで使われています。
$ npm install formidable
CoffeeScript
formidable = require 'formidable' http = require 'http' util = require 'util' http.createServer (req, res)-> if req.url is '/upload' and req.method.toLowerCase() is 'post' form = new formidable.IncomingForm() form.parse req, (err, fields, files)-> res.writeHead 200, {'content-type':'text/plain; charset=UTF-8'} res.write 'received uploaded\n\n' res.end util.inspect {fields: fields, files: files} return res.writeHead 200, {'content-type': 'text/html'} res.end """ <html><head><meta charset="utf-8"></head> <body> <form action="/upload" enctype="multipart/form-data" method="post"> <input type="text" name="title"><br> <input type="file" name="upload" multiple="multiple"><br> <input type="submit" name="Upload"> </form> </body> """ .listen 3000
new formidable.IncomingForm() でインスタンス化し、parse 関数で解析を開始します。コールバックの第2引数 fieldsには、フォームデータのキー(inputタグのname属性)と値(value値)のオブジェクトが配列で入ってきます。第3引数 files には、アップロードされたデータの情報が入ってきます。
実行します。
$ coffee sample.coffee
ブラウザで http://localhost:3000 にアクセスします。
テキストフィールドに適当な文字列を入力し、適当なファイルを選択して、送信します。
特にファイル情報を簡単に、しかも高速に取得できる点で、とても便利なパッケージです。1万以上のパッケージの中で57のパッケージに使われています。
0 件のコメント:
コメントを投稿