Skip to content

GGui26/adaction-back

Repository files navigation

le code app.js a date

// 1. Le code importé par NEON pour configurer la BDD créée : require("dotenv").config();

// 2. Importer le client PostgreSQL const { Pool } = require("pg");

// 3. Récupérer les variables de connexion depuis process.env (chargées par dotenv) const { PGHOST, PGDATABASE, PGUSER, PGPASSWORD } = process.env;

// 4. Créer un pool de connexions à la base de données const pool = new Pool({ host: PGHOST, database: PGDATABASE, username: PGUSER, password: PGPASSWORD, port: 5432, // Le port standard de PostgreSQL ssl: { require: true, // Nécessaire pour Neon, assure une connexion sécurisée }, });

// 5. Fonction de test de connexion (optionnelle mais très utile pour vérifier) async function getPgVersion() { const client = await pool.connect(); // Obtient un client du pool try { const result = await client.query('SELECT version()'); // Exécute une simple requête console.log(result.rows[0]); // Affiche la version de PostgreSQL } finally { client.release(); // Libère le client pour qu'il retourne au pool } } // 6. Appeler la fonction de test pour vérifier la connexion au démarrage de l'application getPgVersion();

// 7. ça me demande (Optionnel) d'Exporter le 'pool' pour l'utiliser dans d'autres modules de votre application // module.exports = pool;

const express = require('express'); // require('dotenv').config(); DEJA ECRIT EN LIGNE 2 const cors = require("cors"); const app = express(); const port = 3001;

// importer tout le contenue du fichier associations.js dans app.js // const volunteersRoutes = require('./routes/volunteers'); // const associationsRoutes = require('./routes/associations');

app.use(cors()); app.use(express.json()); // MIDDLEWARE global app.use(express.urlencoded({ extended: true })); // pour encoder

app.use((req, res, next) => { console.log(Requête reçue : ${req.method}q ${req.url}); next(); });

// router //app.use('/volunteers'); // Pas besoin de mettre .js //app.use('/associations' ,associationsRoutes ); //revoyer le traitement de cette route au fichier associations.js

// pour lancer le serveur app.listen(port, () => { console.log(serveur démarré sur le port ${port}); });

// test de route app.get("/volunteers", (req, res) => { pool.query('SELECT * FROM volunteers', (err, data) => { if (err) { console.log("coucou", err); return res.status(500).send(err); } console.log("coucou je suis bien dans la route"); res.json(data); }); });

//=================================tenter autre chose avec Neon (route associations)

// app.js require('dotenv').config(); // Charge les variables d'environnement du fichier .env // const express = require('express'); déja ecrit en ligne 38 // const { Pool } = require('pg'); déja cité en ligne 5 //const cors = require('cors'); // déja cité ligne 40

// Importe le module de route des associations const associationsRouter = require('./routes/associations'); // Notez le chemin relatif

// const app = express(); // déja cité en haut // const port = process.env.PORT || 3001;

// Configuration de la connexion à la base de données Neon // const pool = new Pool({ // host: process.env.PGHOST, // user: process.env.PGUSER, // password: process.env.PGPASSWORD, // database: process.env.PGDATABASE, // port: process.env.PGPORT, // ssl: { // rejectUnauthorized: false // Nécessaire pour les connexions SSL avec Neon // } // });

// Middleware // app.use(cors()); // app.use(express.json());

async function testAsso() { let client; // Déclarez le client ici pour qu'il soit accessible dans le bloc 'finally' try { client = await pool.connect(); // Obtient (attend) un client du pool const result = await client.query('SELECT version()'); // Exécute une simple requête console.log('Connecté à la base de données PostgreSQL !'); console.log(result.rows[0]); // Affiche la version de PostgreSQL } catch (err) { // En cas d'erreur lors de la connexion ou de la requête console.error('Erreur de connexion à la base de données', err.stack); } finally { // Ce bloc s'exécute toujours, que l'opération ait réussi ou échoué if (client) { // Vérifiez que le client a bien été obtenu avant de le relâcher client.release(); // Libère le client pour qu'il retourne au pool de connexions } } }

testAsso();

// --- Nouvelle partie : Utilisation du routeur des associations ---

// "Monte" le routeur des associations. // Toutes les routes définies dans associations.js seront préfixées par '/api'. // Par exemple, 'router.get('/associations', ...)' dans associations.js // deviendra accessible via 'http://localhost:3000/api/associations'. app.use('/api', associationsRouter(pool)); // Passe l'instance du pool au routeur

// --- Fin de la nouvelle partie ---

// Démarrage du serveur app.listen(port, () => { console.log(Serveur backend écoutant sur http://localhost:3001); });

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •