Estoy tratando de aprovechar el node-request module, pero la documentación no es tan buena. Si realizo una solicitud a un recurso válido y lo canalizo a una secuencia de escritura, todo funciona bien. Sin embargo, si realizo una solicitud a un objeto no válido, la secuencia de escritura aún se crea. Ejemplo, tomemos el siguiente fragmento:Solicitud de nodo: cómo determinar si se produjo un error durante la solicitud.
var x = request("http://localhost:3000/foo.jpg");
var st = fs.createWriteStream("foo.jpg");
x.pipe(st);
Si el recurso existe foo.jpg en el servidor, los datos se canaliza a la corriente, y se crea la multa archivo en el servidor. Sin embargo, si foo.jpg no existe en el servidor, aún se crea un archivo contenedor en blanco. No parece haber ningún caso de error o cualquier cosa que se puede aprovechar para determinar si la petición devuelve un 404. He intentado algo como lo siguiente:
var x = request("http://localhost:3000/foo.jpg", function(err, response, body) {
if(response.statusCode === 200) {
// Success
var st = fs.createWriteStream("foo.jpg");
x.pipe(st);
}
});
Y también:
request("http://localhost:3000/foo.jpg", function(err, response, body) {
if(response.statusCode === 200) {
// Success
var x = response.request;
var st = fs.createWriteStream("foo.jpg");
x.pipe(st);
}
});
Para ningún aprovechar. La idea es bastante simple; Solo quiero copiar un archivo identificado por la URL al servidor local. Si la solicitud no es válida (404, etc.), no pipe el archivo; si la solicitud es válida, canalice el archivo. ¿Alguna sugerencia?
Espere, no estoy exactamente seguro de lo que quiere lograr aquí. ¿Qué quieres copiar y cuándo? – Qcom
Por el amor de Dios use ['request'] (https://github.com/mikeal/request) en lugar de node-request. – Raynos