2013-06-08 5 views
5

Probabilmente una domanda per alcuni di voi. Ho un endpoint API che restituisce una risposta http con Content-Type impostato su un tipo di immagine: image/jpeg, image/png, ecc. E un 404 se non ci sono immagini per la persona con l'ID che sto inviando.Richiesta di nodo (leggi lo stream di immagini - pipe back to response)

Se 404, voglio solo inviare il file png senza file che si trova nel filesystem. Ho cercato di usare request e pipe e non sto trovando un esempio simile. Le persone sono sempre in streaming da un file.

caso questo lavoro da solo:

app.get('/api/customers/:id/image', function (req, res) { 
    request.get(util.format(config.apis.getImage, req.params.id)).pipe(res); 
    //res.sendfile(path.join(__dirname, '/static/img/user.png')); 
}); 

Non riportare l'immagine al browser, ma genera un'eccezione:

stream.js:94 
throw er; // Unhandled stream error in pipe. 
Error: Parse Error 
at Socket.socketOnData(http.js:1556:20) 
... 

Ad ogni modo, mi piacerebbe verificare la risposta del la chiamata di richiesta nel caso in cui sia il caso 404.

Immagino di essere troppo nuovo per i flussi e cosa no.

Qualsiasi aiuto?

Grazie!

+0

non dovrebbe essere 'req.get' invece di' request.get' – user568109

+0

richiesta proviene da me utilizzando la libreria richiesta ed è richiesto più in alto nella pagina. La richiesta ti dà la bella facilità di cablaggio. – tateman

+0

Hai risolto questo? Ho lo stesso problema. – metalaureate

risposta

0

Che ne dici di fare un request.head prima? (Piccolo overhead).

Se 404 inviare alcun file png altro non request.get ...