我正在使用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' },
答案 0 :(得分:2)
Formidable的parse
期望能够监控您已经通过的data
参数上的res
个事件,但由于您使用request
进行回调,您的回调在发出和收集所有数据之后,创建强大的东西才会运行。这就是请求如何将body
参数传递给回调。
请求模块有一个可用于数据的流,但它不会以Formidable想要的方式公开响应头,所以我认为没有一种简单的方法可以使用它。
由于您只是在执行GET
请求,我建议您使用Node的默认请求逻辑而不是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}));
});
});