Angular Universal SSR не может выполнять запросы API - PullRequest
0 голосов
/ 08 января 2019

У меня на одном сервере запущены 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 перестают работать? Потому что он отлично работает на локальном хосте на моей локальной машине

Спасибо

...