Express + Request Ändern der Header mitten im Stream

8

Ich verwende express als meinen Server und fordere an, Inhalte aus einer Upstream-Box abzurufen.

Ich habe diese wunderbar einfache Funktion, um Daten vom Up-Stream zum Client zu streamen:

%Vor%

Die Upstream-Box gibt einen Cache-Header Cache-Control: no-cache zurück, den ich ändern möchte, so dass Nginx (Reverse-Proxy) die Antwort zwischenspeichern kann.

Wo soll ich das res.header('Cache-Control', 60); setzen?

Ich habe es versucht:

%Vor%

Aber das wirft einen Error: Can't set headers after they are sent Fehler.

Gibt es einen Listener, der ausgelöst wird, wenn die Header gesendet werden, aber bevor writeHeader() aufgerufen wird?

    
alexcline 01.11.2013, 17:39
quelle

2 Antworten

6

Dank Peter Lyons konnte ich mit folgendem Code arbeiten:

%Vor%     
alexcline 11.11.2013, 17:34
quelle
8

Es scheint, dass die Anfrage seit der Annahme der angenommenen Antwort aktualisiert wurde, was diesen Prozess viel einfacher macht. Sie können jetzt Folgendes tun:

%Vor%

Viel schöner!

    
cbnz 25.01.2015 22:42
quelle