2013-06-08 21 views
5

Łatwe pytanie dla niektórych z was prawdopodobnie. Mam punkt końcowy interfejsu API, który zwraca odpowiedź http z ustawieniem Content-Type na typ obrazu - image/jpeg, image/png, itp. I 404, jeśli nie ma obrazu dla osoby o identyfikatorze, który wysyłam.Żądanie węzła (odczyt strumienia obrazu - powrót rury do odpowiedzi)

Jeśli 404, chcę po prostu wysłać plik PNG pliku, który znajduje się w systemie plików. Próbowałem użyć żądania i potoku i nie znajduję podobnego przykładu. Ludzie zawsze przesyłają strumienie z pliku.

To powinno działać sama:

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')); 
}); 

To nie zwróci obraz z powrotem do przeglądarki, ale zgłasza wyjątek:

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

Tak czy inaczej, chciałbym sprawdzić odpowiedź żądanie wezwania w przypadku, gdy chodzi o sprawę 404.

Sądzę, że jestem po prostu zbyt nowy, by strumieniować, a co nie.

Każda pomoc?

Dzięki!

+0

Nie powinno być 'req.get' zamiast' request.get' – user568109

+0

żądanie pochodzi ze mną za pomocą biblioteki życzenie i to wymagane wyżej na stronie. Żądanie zapewnia przyjemną instalację kablową. – tateman

+0

Rozwiązałeś to? Mam ten sam problem. – metalaureate

Odpowiedz

0

Co zrobić najpierw z request.head? (Mały narzut).

Jeśli 404 wysłać żadnego pliku PNG indziej request.get ...