Node.JS, Express und Heroku - Wie behandelt man HTTP und HTTPS?

7

Ich habe eine App, die ganz normale Express-App ist - einfache Serverlogik, Ansichten, viele clientseitige JS. Ich muss viele AJAX-Anfragen machen. Einige von ihnen müssen durch HTTPS-Protokoll gesichert werden (einige brauchen nicht).

Also sollte mein Server sowohl mit HTTP als auch mit HTTPS arbeiten. Es sollte auch funktionieren, sowohl auf dem lokalen Rechner (normalerweise mit nodemon) als auch auf Heroku.

Soweit ich es verstanden habe, gibt Heroku Ihnen einen einzigen Port (process.env.PORT), den Sie hören können, und bearbeitet alle Anfragen über den Proxy (Ihre App hört also auf diesen Port und kümmert sich nicht um das Proto - richtig?)

Also, bekomme ich das richtig - ich sollte einen anderen Code für die Dev-Maschine und Heroku haben?

Wie

%Vor%

Ist es der richtige Weg, damit umzugehen?

    
Guard 01.11.2012, 21:56
quelle

3 Antworten

8

Nun, die Gemeinschaft sieht in diesen Tagen ziemlich tot aus (hoffe ich irre mich)

Die Antwort ist:

Ja, das ist der Weg, damit umzugehen

b) Die Art zu prüfen, ob Sie sich im gesicherten Modus befinden oder nicht, hängt auch von der Umgebung ab:

%Vor%

HINZUFÜGEN Wenn Sie HTTPS erzwingen möchten:

%Vor%     
Guard 12.11.2012, 20:43
quelle
10

Für die Coffeescript-Challenges ist hier eine Version von Guard's Antwort in Javascript konvertiert. Ich habe einen anderen Ansatz gewählt, um die if else-Anweisungen zu trennen.

%Vor%     
dankohn 29.04.2013 04:30
quelle
3

Sie können app.enable('trust proxy') verwenden, dann funktioniert req.secure boolean (http / https) auch auf Heroku oder hinter jedem kompatiblen SSL-Terminierungs-Proxy.

    
zakjan 21.05.2014 09:36
quelle

Tags und Links