Node.js: connectのbodyParser

『実践Node.jsプログラミング』(p.178〜)の写経。
前回のcookieParser同様、bodyParserもconnectとは別途インストールする必要があります。また、bodyParser()と直接呼び出すのではなく、bodyParser.urlencoded()、bodyParser.json()というふうに個別にメソッドを起動してuseにハンドラを引き渡します。なお、multipart/form-data形式は、さらに別途モジュールを追加する必要があります。ここでは、multerの例を示します。

connect、body-parserとmulterをインストール。

npm install connect
npm install body-parser
npm install multer

『実践Node.jsプログラミング』(p.179)に対応する例。

var connect = require('connect')
  , bodyParser = require('body-parser')
  , multer = require('multer');

var app = connect()
          .use(bodyParser.urlencoded({
            extended: false,
            limit: '32kb'
          }))
          .use(multer({
            dest: './uploads/',
            limits: {
              fieldNameSize: 64,
              files: 5,
              fileSize: 1024*1024
            }
          }))
          .use(bodyParser.json({ limit: '32kb' }))
          .use(function(req, res) {
            console.log(req.body);
            console.log(req.files);
            res.setHeader('Content-Type', 'text/plain; charset=utf-8');
            res.end('Registered new user:' + req.body.username + '\n');
          })
          .listen(3000);

p.180以降のlimitについては、上記コードのように、各ミドルウェアで個別にオプションとして指定する。