У меня на одном сервере запущены 2 приложения https://www.neptos.io
Один использует Express для API, работающего на порту 3000, в то время как другой использует угловой универсальный SSR на порту 443. Казалось, что угловое приложение не может предварительно обработать данные запросов API.
Я подозреваю, что это может быть из-за того, как работает экспресс и угловой ssr.
Angular работает так:
const port = process.env.PORT || 8080;
const server = require('./dist/server');
var https = require('https');
var fs = require("fs");
var options = {
key: fs.readFileSync("/etc/letsencrypt/live/neptos.io/privkey.pem",),
cert: fs.readFileSync("/etc/letsencrypt/live/neptos.io/fullchain.pem")
};
server.app.get('/*', function(req, res, next) {
if (req.headers.host.match(/^www/) !== null ) {
res.redirect('https://' + req.headers.host.replace(/^www\./, '') + req.url);
} else {
next();
}
})
https.createServer(options,server.app).listen(443);
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(301, { "Location": "https://www." + req.headers['host'] + req.url });
res.end();
в то время как Express использует:
var server = https.createServer(credentials, app);
server.listen(port);
Угловое приложение использует абсолютный URL, а также https://www.neptos.io:3000/--- для вызова API вместо относительных URL,
Может кто-нибудь объяснить, почему мои вызовы API перестают работать? Потому что он отлично работает на локальном хосте на моей локальной машине
Спасибо