Node.JS, Express und Heroku - Wie gehe ich mit HTTP und HTTPS um?

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

Mein Server sollte also sowohl mit HTTP als auch mit HTTPS arbeiten. Es sollte auch sowohl auf dem lokalen Computer (der normalerweise mit nodemon ausgeführt wird) als auch auf Heroku funktionieren.

Soweit ich verstanden habe, gibt Heroku Ihnen einen einzelnen Port (process.env.PORT), den Sie abhören können, und verarbeitet alle Anfragen über den Proxy (Ihre App hört also diesen Port ab und kümmert sich nicht um den Proto - oder? )

Also, verstehe ich das richtig - ich sollte einen anderen Code für Dev Machine und Heroku haben?

Mögen

...
app = express()
...

if process.env.NODE_ENV == 'production'
  app.listen(process.env.PORT)
else
  https = require('https')
  http = require('http')
  http.createServer(app).listen(5080) # some local port
  options = {
    key: fs.readFileSync('key.pem'), 
    cert: fs.readFileSync('cert.pem') # my self-signed files
  }
  https.createServer(options, app).listen(5443) # some different local port

Ist es der richtige Weg, damit umzugehen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage