Вы пытались использовать модуль https в узле?
Вы можете сделать что-то вроде этого:
var express = require('express');
var https = require('https');
var http = require('http');
var app = express();
http.createServer(app).listen(80);
https.createServer(options, app).listen(443);
Приложение, возвращаемое функцией express (), фактически является функцией JavaScript, разработаннойдля передачи на HTTP-серверы Node в качестве обратного вызова для обработки запросов.Это упрощает предоставление версий вашего приложения как HTTP, так и HTTPS с одной и той же кодовой базой, поскольку приложение не наследует их (это просто обратный вызов.
Если вы используете приложение создания реакции, откройтевашего терминала и введите «npm run build». Это создаст папку сборки со всеми вашими статическими файлами.
Теперь вернитесь в бэкэнд-сервис вашего узла и добавьте следующее:
var express = require('express');
var path = require('path');
var https = require('https');
var http = require('http');
var app = express();
const options = {
key: fs.readFileSync("/srv/www/keys/my-site-key.pem"),
cert: fs.readFileSync("/srv/www/keys/chain.pem")
};
http.createServer(app).listen(80);
https.createServer(options, app).listen(443);
app.use(express.static(path.join(__dirname, 'build')));
app.get('/', function(req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
Если вы используете реакционный маршрутизатор для обработки маршрутизации для своего веб-приложения, вы должны изменить запрос GET следующим образом:
var express = require('express');
const path = require('path');
var https = require('https');
var http = require('http');
var app = express();
const options = {
key: fs.readFileSync("/srv/www/keys/my-site-key.pem"),
cert: fs.readFileSync("/srv/www/keys/chain.pem")
};
http.createServer(app).listen(80);
https.createServer(options, app).listen(443);
app.use(express.static(path.join(__dirname, 'build')));
app.get('/*', function(req, res) {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});