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ć?