Files
aduzuki/app_aduzuki.js
2026-07-20 16:33:04 +02:00

150 lines
4.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/////////////////////////////////////////////////
// LOGGING
/////////////////////////////////////////////////
const logger = require("./public/js/app/logger");
logger.info('bonjour Julie');
/////////////////////////////////////////////////
// VARIABLES D'ENVIRONNEMENT
/////////////////////////////////////////////////
// DOTENV
// Ne pas utiliser de fichiers .env dans votre environnement de production,
// mais définir plutôt les valeurs d'environnement sur l'hébergeur
require('dotenv').config();
logger.info('process.env.PORT : ' + process.env.PORT);
/////////////////////////////////////////////////
// APPELS DES MODULES
/////////////////////////////////////////////////
// EXPRESS
const express = require('express');
// EXPRESS-SESSION
const session = require('express-session');
// BODY-PARSER
//Le package body-parser permet de décomposer les requêtes HTTP POST, PATCH, etc. afin de pouvoir extraire les infoirmations tranmises dans des formulaires. Ces informations apparaissent dans le champ req.body.
const bodyparser = require('body-parser');
/////////////////////////////////////////////////
// MIDDLEWARE
// INITIALISER LES MODULES DANS LE PROJET APP
/////////////////////////////////////////////////
// EXPRESS
//// "app" étant la variable qui désigne le projet
const app = express();
// EXPRESS-SESSION
var session_cookie = {
secret: process.env.COOKIE_SECRET,
resave: false,
saveUninitialized: false,
cookie: {}
}
logger.info("process.env.ENV : " + process.env.ENV);
if (process.env.ENV === 'production') {
logger.info("express-session secured");
app.set('trust proxy', 1); // trust first proxy
session_cookie.cookie.secure = true; // serve secure cookies
}
app.use(session(session_cookie))
// JSON
//// Read datas on API
//// needed by Express to read post from HTML Form
// not for STRIPE WEBHOOK
app.use('/wh_stripe', express.raw({ type: 'application/json' }));
// for the others
app.use(express.json());
// BODY-PARSER
//// Pour récupérer les saisies des formulaires des pages via express (req.body)
app.use(bodyparser.urlencoded({ extended: true}));
app.use(bodyparser.json());
/////////////////////////////////////////////////
// PORT D'ÉCOUTE WEB
/////////////////////////////////////////////////
// port dans variable d'environnement OU (||) par défaut 8888
const port = process.env.PORT;
app.listen(port);
/////////////////////////////////////////////////
// MOTEUR DE TEMPLATE HTML
/////////////////////////////////////////////////
// appeler le moteur de template html ejs
app.set('view engine', 'ejs');
// le répertoire dans lequel se trouvent les fichiers modèles
app.set('views', './views')
/////////////////////////////////////////////////
// ASSETS (de Express)
/////////////////////////////////////////////////
// donner au programme le nom du dossier où sont les assets (css, image...)
// Le chemin daccès que vous fournissez à la fonction express.static est en rapport
// avec le répertoire à partir duquel vous lancez votre processus node.
// Si vous exécutez lapplication express à partir dun autre répertoire,
// il est plus sûr dutiliser le chemin daccès absolu que vous voulez servir
// ex : DOMAIN/assets/images/kitten.jpg
app.use('/public', express.static('public'));
/////////////////////////////////////////////////
// ROUTES
/////////////////////////////////////////////////
const appRouter = require("./routes/appRouter");
const adhesionRouter = require("./routes/adhesionRouter");
const stagenatRouter = require("./routes/stagenatRouter");
const rassemblementRouter = require("./routes/rassemblementRouter");
const rassemblementraRouter = require("./routes/rassemblementraRouter");
const concertRouter = require("./routes/concertRouter");
const donRouter = require("./routes/donRouter");
const ventevideoRouter = require("./routes/ventevideoRouter");
const wuzukiRouter = require("./routes/wuzukiRouter");
// Accueil du site
// [DOMAIN]/
app.use("/", appRouter);
// Adhésion
// [DOMAIN]/adhésion
app.use("/adhesion", adhesionRouter);
// STAGE NATIONAL
// [DOMAIN]/stagenational
app.use("/stagenational", stagenatRouter);
// RASSEMBLEMENT IDF
// [DOMAIN]/rassemblementidf
app.use("/rassemblementidf", rassemblementRouter);
// RASSEMBLEMENT IDF
// [DOMAIN]/rassemblementidf
app.use("/rassemblementra", rassemblementraRouter);
// CONCERT ANNUEL
// [DOMAIN]/concert
app.use("/concert", concertRouter);
// DON
// [DOMAIN]/don
app.use("/don", donRouter);
// VENTE VIDEO
// [DOMAIN]/boutique
app.use("/boutique", ventevideoRouter);
// WUZUKI
// [DOMAIN]/wuzuki
app.use("/wuzuki", wuzukiRouter);