2

mikealのRequestモジュールを使用してRESTサーバーから画像を取得し、マルチパート応答を手ごわいもので解析しようとしていますが、form.parseが呼び出されることはありません。何か間違っていることがありますか?

request.get({url: "http://ur-to-get", headers: headers, qs: query}, function(err, res, body) {
    var form = new formidable.IncomingForm();
    form.parse(res, function(err, fields, files) {
        console.log(util.inspect({fields: fields, files: files}));      
    });
});

そして、ヘッダーは次のようになります。

transfer-encoding': 'chunked',
'content-type': 'multipart/parallel;
boundary=yz2C9C5D87FD6148a3986510BCACF917A82C9C5D87FD6148a3986510BCACF917A8ZY' },
4

1 に答える 1

2

Formidableは、渡した引数のイベントparseを監視できることを期待していますが、コールバックを使用しているため、すべてのデータが送信および収集されるまで、手ごわいものを作成するコールバックは実行されません。このようにして、リクエストは引数をコールバックに渡すことができます。dataresrequestbody

リクエストモジュールにはデータに使用できるストリームがありますが、Formidableが望む方法でレスポンスヘッダーを公開していないため、簡単に使用できる方法はないと思います。

リクエストを実行しているだけなので、引数は少し複雑ですがGET、モジュールの代わりにノードのデフォルトのリクエストロジックを使用することをお勧めします。request

http.get({
  host:'google.com',
  headers: headers,
  path: '/?' + querystring.stringify(qs)
}, function(res){
  var form = new formidable.IncomingForm();
  form.parse(res, function(err, fields, files) {
    console.log(util.inspect({fields: fields, files: files}));      
  });
});
于 2012-09-08T20:06:56.137 に答える