node.jsで画像データをPOSTするには、
formidableモジュールが必要です。
npmコマンドでインストールします。以下、実行例です。
C:¥nodejs>npm install formidable
npm http GET https://registry.npmjs.org/formidable
npm http 200 https://registry.npmjs.org/formidable
npm http GET https://registry.npmjs.org/formidable/-/formidable-1.0.11.tgz
npm http 200 https://registry.npmjs.org/formidable/-/formidable-1.0.11.tgz
formidable@1.0.11 node_modules\formidable
これでformidableモジュールを使うことが出来ます。
function route(handle,pathname,res,postData) {
if (typeof handle[pathname] === 'function') {
handle[pathname](res,postData);
} else {
res.writeHead(404, {"Content-Type": "text/html"});
res.end();
}
}
exports.route = route;
リクエストハンドラも引数にpostDataを増やしています。
function start(res,postData) {
res.writeHead(200, {"Content-Type": "text/html"});
var body = '<html>'+
'<head>'+
'<meta http-equiv="Content-Type" content="text/html; '+
'charset=UTF-8" />'+
'</head>'+
'<body>'+
'<form action="/end" method="post">'+
'<textarea name="text" rows="20" cols="60"></textarea>'+
'<input type="submit" value="Submit text" />'+
'</form>'+
'</body>'+
'</html>';
res.write(body);
res.end();
}
function end(res,postData) {
res.writeHead(200, {"Content-Type": "text/plain"});
res.write(postData);
res.end();
}
exports.start = start;
exports.end = end;
以下実行例です。最初の画面でsubmit buttonを押します。
初期表示画面
結果画面