Node.JS, Express e Heroku - como lidar com HTTP e HTTPS?

Eu tenho um aplicativo que é bastante normal app Express - lógica do servidor simples, visualizações, lotes de JS do lado do cliente. Eu tenho que fazer muitos pedidos AJAX. Alguns deles precisam ser protegidos pelo protocolo HTTPS (alguns não precisam).

Então, meu servidor deve funcionar com HTTP e HTTPS. Também deve funcionar tanto a máquina local (correu com nodemon normalmente) e em Heroku.

Tanto quanto eu entendi, Heroku lhe dá uma única porta (process.env.PORT) você pode ouvir e lida com todos os pedidos através do proxy (assim, você app está ouvindo esta porta e não se preocupar com o proto - certo? )

Então, estou conseguindo isso direito - eu deveria ter algum código diferente para a máquina dev e Heroku?

Gostar

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

É o jeito certo de lidar com isso?