【发布时间】:2015-12-31 00:04:13
【问题描述】:
在节点中将一些图像上传到服务并捕获响应的最佳方式是什么?
我想上传一些类似的图片
curl -F media=@$MEDIAFILE $URL
会的。
我让request library 使用流和管道,但我看不到如何捕获输出/响应。
// define a read stream from our source file
var inFile = 'media/uploads/images/abby.jpg';
var source = fs.createReadStream(inFile);
// pipe data to POST request
source.pipe(request.post(wcUrl)
.on('error', function(error){
console.log("ERROR:", error);
})
.on('response', function(response, p1, p2){
console.log(Object.keys(response));
console.log('headers', response.headers);
console.log('statusCode', response.statusCode);
console.log('body', response.body);
})
);
我可以看到 statusCode 是 200 响应 OK,但无法获取响应正文。返回的字段似乎都没有有用的数据。
[ '_readableState',
'readable',
'domain',
'_events',
'_eventsCount',
'_maxListeners',
'socket',
'connection',
'httpVersionMajor',
'httpVersionMinor',
'httpVersion',
'complete',
'headers',
'rawHeaders',
'trailers',
'rawTrailers',
'upgrade',
'url',
'method',
'statusCode',
'statusMessage',
'client',
'_consuming',
'_dumped',
'req',
'request',
'toJSON',
'caseless' ]
headers { server: 'nginx/1.8.0',
date: 'Thu, 31 Dec 2015 00:00:34 GMT',
'content-type': 'text/plain',
'content-length': '109',
connection: 'close' }
statusCode 200
body undefined
大多数请求包示例都使用表单或多部分,而我只想发送一个简单的图像文件。 也许还有另一种更合适的节点方式来做到这一点?
【问题讨论】:
标签: node.js image-processing request http-post