2013-08-25 12 views
8

Mi piacerebbe leggere un'immagine remota e visualizzarla. Posso salvare il file ma non ottenere il codice giusto per visualizzarlo. Idealmente, voglio solo passare il file senza elaborazione, non sono sicuro che sia necessario o meno un passo del file tmp. Questo codice non visualizza nulla, nessun errore. Ho provato anche res.pipe (response).Piping file remoto in ExpressJS

var url = 'http://proxy.boxresizer.com/convert?resize=50x50&source=' + filename 

var request = http.get(url, function(response) { 

    var tmp = path.join(require('os').tmpDir(), filename); 

    var outstream = require('fs').createWriteStream(tmp); 

    response.pipe(outstream); 
    response.on('end', function() { 
    res.set('Content-Type', 'image/jpg'); 
     res.pipe(outstream); 
     res.end(); 
    }); 
}); 

risposta

12

Beh mi piace ancora di sapere come fare il lavoro di cui sopra, ma ho risolto il mio problema in una linea con il modulo request!

var url = 'http://proxy.boxresizer.com/convert?resize=50x50&source=' + filename 
require('request').get(url).pipe(res); // res being Express response 
+2

Questo è molto meglio. Non stai salvando il file sul disco. Se vuoi salvare la risposta, dopo 'response.pipe (outstream);' devi riaprire il file con 'createreadstream' e collegarlo a' res'. Nella domanda hai fatto 'res.pipe (outstream);' che è un errore. Devi pipeare il file in 'res'. – user568109

+0

Mi piace questa risposta: http://stackoverflow.com/questions/11355366/nodejs-redirect-url – Ron