Node.JS, Express и Heroku - как работать с HTTP и HTTPS?

У меня есть приложение, которое является вполне нормальным приложением Express - простая логика сервера, представления, множество JS на стороне клиента. Я должен сделать много запросов AJAX. Некоторые из них должны быть защищены протоколом HTTPS (некоторыет).

Итак, мой сервер должен работать как с HTTP, так и с HTTPS. Он также должен работать как на локальной машине (нормально работал с nodemon), так и на Heroku.

Насколько я понял, Heroku предоставляет вам один порт (process.env.PORT), который вы можете прослушивать, и обрабатывает все запросы через прокси (так что ваше приложение слушает этот порт и не беспокоится о прото-праве? )

Итак, я правильно понял - у меня должен быть какой-то другой код для dev-машины и Heroku?

подобно

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

Это правильный способ справиться с этим?

Ответы на вопрос(3)

Ваш ответ на вопрос