Node.JS, Express i Heroku - jak obsługiwać HTTP i HTTPS?

Mam aplikację, która jest dość normalną aplikacją Express - prosta logika serwera, widoki, wiele JS po stronie klienta. Muszę wykonać wiele żądań AJAX. Niektóre z nich muszą być zabezpieczone protokołem HTTPS (niektóre nie muszą).

Więc mój serwer powinien działać zarówno z HTTP, jak iz HTTPS. Powinien także działać zarówno na lokalnej maszynie (normalnie uruchamianej z nodemonem), jak i na Heroku.

Z tego, co zrozumiałem, Heroku daje ci pojedynczy port (process.env.PORT), którego możesz słuchać i obsługuje wszystkie żądania przez proxy (więc aplikacja słucha tego portu i nie przejmuje się proto - prawda? )

Czy mam to dobrze - powinienem mieć jakiś inny kod dla maszyny dev i Heroku?

Lubić

...
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

Czy jest to właściwy sposób, aby sobie z tym poradzić?

questionAnswers(3)

yourAnswerToTheQuestion