npm中的image-size模块有相关方法
想问一下各位大佬,如何改成 request 或者 request-promise 的形式,不用 http 的事件监听
Promise = require('bluebird');
let url = require('url');
let http = require('http');
let rp = require('request-promise');
let request = require('request');
let sizeOf = require('image-size');
let imgUrl = 'http://static.oschina.net/uploads/space/2016/0219/095715_HJwP_220508.png';
let options = url.parse(imgUrl);
http.get(options, function (response) {
let chunks = [];
response.on('data', function (chunk) {
chunks.push(chunk);
}).on('end', function() {
let buffer = Buffer.concat(chunks);
console.log('http', buffer);
console.log(sizeOf(buffer));
});
});
request({
url: imgUrl,
encoding: 'binary'
}, function(err, res, body) {
let buffer = new Buffer(body);
console.log('request', buffer);
});
async function test() {
let result = await rp({url: imgUrl,
encoding: 'binary'});
let buffer = new Buffer(result);
console.log('test', buffer);
}
test();
输出如下
输出特点:
- request 和 request-promise 得到的结果(A)是一样的,和 http 的结果(B)不一样
- A 比 B 的长
- A 和 B 部分相似
http 和 request 请求的区别在哪里?