node.js+expressでPOSTパラメーターを取得する方法

駄目っぽい?

むーん? node.jsつーかexpressで,GETメソッドはreq.queryでオブジェクト化されてるけど,POSTメソッドのパラメーターがreqだけじゃだめなのかな.Wed Feb 23 14:42:29 via Echofon

ふつうにPOSTを受け取る

var app = express.createServer();

app.post('/post', function(req, res) {
    console.log(req);
});

このreqの中に,POSTっぽいものは含まれていません.

イベントで受け取ってるみる

app.post('/post', function(req, res) {
    req.on('data', function(chunk) {
      console.log(chunk);
    });
});

こうすると,chunkの中はPOSTされたデータです.なるほど.しかし・・・.

これでOK

GETみたいにオブジェクト化されんものかと思ったら.

express.bodyDecorder

app.use(express.bodyDecoder());

app.post('/post', function(req, res) {
     console.log(req.body);
});

express.bodyDecorderによって,req.bodyの中がオブジェクト化されたPOSTパラメータになります.

2011-05-01 20:39追記:同メソッドの名前が,express バージョン2.3.2時点でbodyParserに変更されているようです.

参考

参考にするつもりだったのに,ななめ飛ばし読みすぎて気づかなかった.orz