- Aggiornato i vari .ENV

This commit is contained in:
Surya Paolo
2025-03-04 20:20:26 +01:00
parent 8363d65456
commit f3597facd3
16 changed files with 1099 additions and 148347 deletions

View File

@@ -1,52 +1,84 @@
var mongoose = require('mongoose').set('debug', false)
var mongoose = require('mongoose').set('debug', process.env.VITE_DEBUG);
// Configurazione globale di Mongoose
mongoose.Promise = global.Promise;
mongoose.level = "";
mongoose.set('debug', false);
mongoose.set('strictQuery', false);
// Opzioni di connessione
let options = {
maxPoolSize: 5,
// useNewUrlParser: true,
// useUnifiedTopology: true,
maxPoolSize: 5,
serverSelectionTimeoutMS: 30000,
serverSelectionTimeoutMS: 20000, // Timeout di 30 secondi per la selezione del server
};
// Controllo dell'autenticazione
console.log('process.env.AUTH_MONGODB', process.env.AUTH_MONGODB);
const username = encodeURIComponent(process.env.MONGODB_USER);
const password = encodeURIComponent(process.env.MONGODB_PWD);
if (process.env.AUTH_MONGODB === '1') {
/*options.auth = {
options.auth = {
authSource: "admin",
username: process.env.MONGODB_USER,
password: process.env.MONGODB_PWD,
};*/
username,
password
};
}
if (options.auth && options.auth.user) {
console.log('MongoDb con Authenticazione:', options.auth.user, '******');
if (options.auth && options.auth.username) {
console.log('MongoDb con Authenticazione:', options.auth.username, '******');
} else {
console.log('### MongoDb SENZA Authenticazione !!! ');
}
const db = mongoose.connection;
// Stampa delle informazioni di sistema
console.log('Node Version ' + process.version);
console.log('Mongoose Version ' + mongoose.version);
connectionUrl = process.env.MONGODB_URI;
if (process.env.AUTH_MONGODB === '1') {
connectionUrl = `mongodb://${process.env.MONGODB_USER}:${process.env.MONGODB_PWD}@localhost:27017/test_FreePlanet`;
// URL di connessione
const connectionUrl = process.env.MONGODB_URI;
console.log('Connessione a ' + connectionUrl + ' in corso...');
// Funzione per connettersi al database con retry
async function connectToDatabase(uri, opts) {
let isConnected = false;
while (!isConnected) {
try {
console.log("Sto provando a connettermi al database...");
await mongoose.connect(uri, opts);
console.log(' *** CONNESSIONE EFFETTUATA ! ' + uri + ' db: ' + process.env.DATABASE);
console.log(' Database corrente:', mongoose.connection.name);
// Ottieni l'URL completo della connessione
console.log(' URL di connessione:', mongoose.connection.client.s.url);
const db = mongoose.connection;
const serverInfo = await db.db.admin().serverStatus(); // Ottieni lo stato del server
console.log(` Versione di MongoDB: ${serverInfo.version}`); // Stampa la versione
isConnected = true; // Imposta la flag di connessione a true
} catch (error) {
console.error(" Errore durante la connessione al database:", error.message);
if (error.name === 'MongooseServerSelectionError' || error.name === 'MongoServerError') {
console.log(" Ritento la connessione tra 1 minuto...");
await new Promise((resolve) => setTimeout(resolve, 60000)); // Attendi 1 minuto prima di ritentare
} else {
console.error(" Errore irreversibile. Arresto il processo.");
await new Promise((resolve) => setTimeout(resolve, 10000)); // Attendi 1 minuto prima di ritentare
process.exit(1); // Termina il processo in caso di errore irreversibile
}
}
}
}
console.log('Connessione a ' + connectionUrl + ' in corso...', options);
mongoose.connect(connectionUrl, options);
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function () {
// we're connected!
console.log('*** CONNESSIONE EFFETTUATA ! ' + connectionUrl + ' db: ' + process.env.DATABASE)
});
module.exports = { mongoose };
// Esporta Mongoose
module.exports = { mongoose, connectToDatabase, connectionUrl, options };