From d2459557336a60a0bb14ce5b5fc776f0998d8a22 Mon Sep 17 00:00:00 2001 From: Massiles Ghernaout <749-gm213204@users.noreply.www-apps.univ-lehavre.fr> Date: Tue, 2 Dec 2025 20:47:49 +0100 Subject: [PATCH] Fixed our envs setup in regards to the docker compose file. --- docker-compose.yml | 9 ++++----- game/server/db/db.js | 30 ++++++++++++++---------------- game/server/server.js | 2 +- 3 files changed, 19 insertions(+), 22 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 275112e..09117fa 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,11 +3,8 @@ services: image: postgres:15-alpine container_name: jump_dash_db restart: always - environment: - POSTGRES_HOST_AUTH_METHOD: "trust" - POSTGRES_USER: ${DB_USER:-test} - POSTGRES_PASSWORD: ${DB_PASSWORD:-test} - POSTGRES_DB: ${DB_NAME:-game_db} + env_file: + - .env ports: - "${DB_PORT}:5432" volumes: @@ -20,6 +17,8 @@ services: stdin_open: true tty: true command: --gameWsPort=3000 --monitorsWsPort=3001 --minScore=5 + env_file: + - .env depends_on: - postgres diff --git a/game/server/db/db.js b/game/server/db/db.js index db435e0..67660c2 100644 --- a/game/server/db/db.js +++ b/game/server/db/db.js @@ -1,16 +1,14 @@ -const path = require('path'); -// Chargement des variables d'environnement depuis la racine du projet -require('dotenv').config({ path: path.resolve(__dirname, '../../../.env') }); +require('dotenv').config(); const { Pool } = require('pg'); // --- Configuration de la Connexion BDD --- // Utilisation des variables definies dans le fichier .env pour la securite const pool = new Pool({ - user: process.env.DB_USER || "test", - password: process.env.DB_PASSWORD || "test" , - database: process.env.DB_NAME || "game_db", - port: process.env.DB_PORT || 5432, + user: process.env.DB_USER, + password: process.env.DB_PASSWORD, + database: process.env.DB_NAME, + port: process.env.DB_PORT, host: process.env.DB_HOST || 'localhost', }); @@ -18,7 +16,7 @@ const pool = new Pool({ // Stockage temporaire des parties terminees avant insertion en base let writeBuffer = []; // Intervalle de temps entre chaque ecriture en base (10 secondes) -const FLUSH_INTERVAL = 10000; +const FLUSH_INTERVAL = 10000; // --- Initialisation de la Base de Donnees --- async function initDB() { @@ -45,13 +43,13 @@ async function initDB() { function bufferGameRun(sensorId, score, deaths) { if (score > 0) { console.log(`Ajout au buffer de persistence : Capteur [${sensorId}] - Score ${score}`); - + // Ajout de l'entree dans la memoire tampon avec un timestamp generé par le serveur - writeBuffer.push({ - sensorId: sensorId, - score: score, - deaths: deaths, - date: new Date() + writeBuffer.push({ + sensorId: sensorId, + score: score, + deaths: deaths, + date: new Date() }); } } @@ -72,14 +70,14 @@ async function flushBuffer() { try { // Debut de la transaction SQL await client.query('BEGIN'); - + for (const run of currentBatch) { await client.query( 'INSERT INTO game_runs(sensor_id, final_score, total_deaths, played_at) VALUES($1, $2, $3, $4)', [run.sensorId, run.score, run.deaths, run.date] ); } - + // Validation de la transaction await client.query('COMMIT'); console.log("Sauvegarde BDD reussie."); diff --git a/game/server/server.js b/game/server/server.js index d3c9db1..6cb061e 100644 --- a/game/server/server.js +++ b/game/server/server.js @@ -1,5 +1,5 @@ // Chargement de la configuration sécurisée (.env) -require('dotenv').config({ path: '../../.env' }); +require('dotenv').config(); const minimist = require('minimist'); const express = require('express'); -- GitLab