javascript - parse - ¿Cómo canalizar la respuesta a un archivo en el módulo Co-Request & NodeJs?
parse node js (1)
Estoy usando Co-Request para leer el archivo Zip de la URL de http, y tengo el siguiente código para leer del servidor
El código ya funciona. Pero no sé cómo escribir la respuesta Zip en un archivo.
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 es en realidad un contenedor para Request y he encontrado el siguiente código para canalizar el archivo a transmitir. Pero no estoy seguro de cómo escribir lo mismo utilizando Co-Request con rendimiento.
request.get(''http://example.com/img.png'').pipe(request.put(''http://example.com/img.png''))
Por favor, ayude a escribir el zip de respuesta en un archivo usando el rendimiento y la solicitud conjunta
Pienso que la tubería de solicitud no es válida después de que los datos hayan sido emitidos desde la respuesta
Utilice la solicitud en lugar de la solicitud conjunta, escriba una promesa para lograr esto
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);
});