- Aggiornato i vari .ENV
This commit is contained in:
@@ -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 };
|
||||
Reference in New Issue
Block a user