Я хочу, чтобы в моем приложении Express JS был механизм для перенаправления всего http-трафика в https-трафик, аналогичный конфигурации Rails force_ssl.(В случае с Rails он просто отправляет ответ Redirect клиенту
. Я думаю, что код сервера Express будет помещен в Server.js, но мне нужно отличать эти запросы от защищенных (https) запросов, которые должны идтик настоящему приложению.
Я думаю, что код перенаправления выглядит следующим образом:
var http = express.createServer();
http.get('*', function(req, res) {
res.redirect('https://' + req.headers.host + req.url);
})
// have it listen on 8080
http.listen(80);
Вы заметите, что я не могу прослушивать порт по номеру порта, потому что в Herokuесть дополнительное осложнение, что приложение может быть повторно развернуто, прослушивая выбранный порт приложения (оно меняется каждый раз при повторном развертывании).
, поэтому, по сути, мне нужен способ определения протокола (http или https)без использования номера порта здесь в настройке Express, а затем перенаправить http-трафик на https.
Само приложение смоделировано после «Create React App on Heroku» здесь https://originmaster.com/running-create-react-app-and-express-crae-on-heroku-c39a39fe7851,, поэтому по сути этоПриложение REACT обслуживается Express JS на Heroku.
и пример приложения здесь https://github.com/Johnnycon/crae-heroku
, где я застрял в том, что я изучил «процесс» vaи хотя он содержит много информации, он, по-видимому, не содержит никакой информации о запросе, такой как протокол или URL, по мере поступления запроса.
Какие-либо советы или предложения?