Ho finito di personalizzare la mia VPS in cui ho scaricato la web application per l'Associazione di volontariato in cui dedico il mio tempo.
la VPS funge da reserve proxy dovendo gestire sia il frontend che il backend. Utilizzo il sistema operativo nginx
l'applicazione utilizza Angular come frontend, Nginx come backende e Mysql come database.
Mi viene segnalato come errore Cors "header CORS “Access-Control-Allow-Origin” mancante. Codice di stato: 502" anche se sul file index.js esiste la definizione.
index.js
const express = require('express');
const bodyparser = require('body-parser');
const cors = require('cors');
const mysql = require('mysql2');
// porta per mysql
const ports = process.env.PORT || 3000;   // info relative all'ambiente di esecuzione
global.__basedir = __dirname;  // va aprendere la cartella corrente
// importo la connessione al db
const db = require('./db');
// ---------------------------------------------------  importo le rotte
const authRouter = require('./routers/api/auth');
const userRouter = require('./routers/user');
const userlevelRouter = require('./routers/userlevels');
......   altre tabelle
 var corsOptions = {
  // per ambiente di produzione su Aruba
   origin: "https://bandieragialla.ghisellinimoreno.it",
   credentials: "true",
   methods: "GET, POST, PUT, DELETE, OPTIONS",
   headers: "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,Origin,Options"
  }; 
const app = express();
// utilizzo i pacchetti
app.use(cors(corsOptions));
app.use(bodyparser.json());
app.use(express.json());
.....  altre tabelle
// -----------------------------------------   utilizzo il router
// ... Va inserito come ultima rotta 
app.use(function(req, res, next){
    //  res.setHeader('Content-Type', 'text/plain');
      res.setHeader('Access-Control-Allow-Origin', '*');
      res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
      res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
  //    res.status(404).send('La pagina non esiste amico!');
 
      next();
    });
   
  // nuova modalità
  app.listen(ports,() => {
    console.log(`Server sta girando sulla porta ${ports} -- credenziali Aruba per invio email`);
  });
  
  console.log('index.js');
db.js
const config = require("./config.json");
const mysql = require('mysql2');
// originale  per sviluppo su localhost
const Sequelize = require('sequelize')
const sequelize = new Sequelize(
    config.database,
    config.user,
    config.password,
  {
    host: config.host,
    dialect: config.dialect,
    operatorsAliases: 0,
    pool: {
      max: config.pool.max,
      min: config.pool.min,
      acquire: config.pool.acquire,
      idle: config.pool.idle
    }
  }
);
let db;
 
//  ambiente di Produzione 
if(process.env.CLEARDB_DATABASE_URL) {
  db = mysql.createConnection(process.env.CLEARDB_DATABASE_URL)
} else {
    db = mysql.createPool({   // mysql.createConnection
      connectionLimit: 100,
      host: config.host,
      user: config.user,
      password: config.password,
      database:config.database,
      port:config.port,
      waitForConnections: true,
      connectionLimit: 10,
      queueLimit: 0,
      debug: false 
 });
}
// Attempt to catch disconnects 
db.on('connection', function (connection) {
  console.log('DB Connection established');
  connection.on('error', function (err) {
    console.error(new Date(), 'MySQL error', err.code);
  });
  connection.on('close', function (err) {
    console.error(new Date(), 'MySQL close', err);
  });
});
// creo connessione a mysql con pool 
let pool;
pool = mysql.createPool({
  connectionLimit: 300,
  host: config.host,
  user: config.user,
  password: config.password,
  database:config.database,
  port:config.port,
  waitForConnections: true,  //  inizio integrazione di Hidran
  connectionLimit: 10,
  queueLimit: 0,
  idleTimeout: 10000 // Connessioni inattive vengono chiuse dopo 10 secondi
});
// --------------------------------------------------------------------------------   fine ambiente di Produzione EC2
db.Sequelize = Sequelize;
db.sequelize = sequelize;
// model di tutte le tabelle utilizzate
db.user = require("./models/user.js")(sequelize, Sequelize);
db.socio = require("./models/socio.js")(sequelize, Sequelize);
db.userlevel = require("./models/userlevel.js")(sequelize, Sequelize);
..... altre tabelle
module.exports = db;
va in errore header CORS “Access-Control-Allow-Origin” mancante. Codice di stato: 502  anche se il parametro in index.js è stato inserito.

cosa manca o casa è stato scritto in maniera errata ?
grazie
Moreno