gpt4 book ai didi

javascript - 如何在 Co-Request 模块和 NodeJs 中对文件进行管道响应?

转载 作者:IT老高 更新时间:2023-10-28 23:00:18 25 4
gpt4 key购买 nike

我正在使用 Co-Request从 http url 读取 Zip 文件,我有下面的代码从服务器读取..

代码已经工作了。但我不知道如何将响应 Zip 写入文件。

var co = require( "co" );
var request = require( "co-request" );
var options = {
url: "http://www.example.com/sample.zip",
headers: {
'Token': Appconfig.Affiliate_Token,
'Affiliate-Id' : Appconfig.Affiliate_Id
}
}
console.log( "Downloading : zip file" );
var j = yield request( options );

Co-Request 实际上是 Request 的包装器,我在下面找到了将文件传输到流的代码。但不确定如何使用 Co-Request with yield 来编写相同的内容。

request.get('http://example.com/img.png').pipe(request.put('http://example.com/img.png'))

请帮助如何使用 yield 和 co-request 将响应 zip 写入文件

最佳答案

我认为从响应中发出数据后请求无法管道

使用request而不是co-request,写一个promise来实现这个

var co = require('co');
var request = require('request');
var fs = require('fs');

var url = 'http://google.com/doodle.png';

var requestPipToFile = function(url, filepath) {
return new Promise(function(resolve, reject) {
try {
var stream = fs.createWriteStream(filepath);
stream.on('finish', function() {
console.log("pipe finish");
return resolve(true);
});
return request(url).pipe(stream);
} catch (e) {
return reject(e);
}
});
};

co(function*() {
var value = (yield requestPipToFile(url, './outfile'));
return value;
}).then(function(value) {
return console.log(value);
}).catch(function(err) {
return console.error(err);
});

关于javascript - 如何在 Co-Request 模块和 NodeJs 中对文件进行管道响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29586071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com