5
我試着用下面的代碼壓縮響應:模擬使用取回模擬
require('isomorphic-fetch');
const fetchMock = require('fetch-mock'),
fsp = require('fs-promise'),
unzip = require('unzip'),
rimraf = require('rimraf-then'),
path = require('path');
let zipLink = 'https://github.com/stevemao/left-pad/archive/master.zip',
out = 'left-pad-master';
// Careful: lib might be removed at any moment.
fetchMock.get(zipLink,
fsp.createReadStream(path.join(__dirname, 'left-pad-master.zip')));
rimraf(out)
.then(() => fetch(zipLink))
.then(response => {
return new Promise((resolve, reject) => {
// For example purpose, just parse zip file, and log each entry.
response.body.pipe(unzip.Parse())
.on('entry', (entry) => console.log(entry.path))
.on('close', resolve)
.on('error', reject);
});
})
.then(() => console.log('done'))
.catch(console.log);
但它拋出:
Error: invalid signature: 0x725f227b
at C:\dev\unzip-mock\node_modules\unzip\lib\parse.js:59:13
at runCallback (timers.js:628:20)
at tryOnImmediate (timers.js:601:5)
at processImmediate [as _immediateCallback] (timers.js:578:5)
如果您註釋掉fetchMock.get
通話,並與實際工作fetch
它運作良好。
代碼可在https://github.com/mlewand/unzip-mock-example
大,這就是我失蹤了。非常感謝你的回答! –