123 lines
3.8 KiB
JavaScript
123 lines
3.8 KiB
JavaScript
/////////////////////////////////////////////////
|
||
// 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
|
||
app.use(express.json());
|
||
|
||
// BODY-PARSER
|
||
//// Pour la méthode post du formulaire
|
||
app.use(bodyparser.urlencoded({ extended: false}));
|
||
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 d’accè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 l’application express à partir d’un autre répertoire,
|
||
// il est plus sûr d’utiliser le chemin d’accès absolu que vous voulez servir
|
||
// ex : http://localhost:8080/assets/images/kitten.jpg
|
||
app.use('/public', express.static('public'));
|
||
|
||
/////////////////////////////////////////////////
|
||
// ROUTES
|
||
/////////////////////////////////////////////////
|
||
|
||
// APPELER LE FICHIER ROUTE
|
||
// Exemple à modifier :
|
||
const appRouter = require("./routes/appRouter");
|
||
const adhesionRouter = require("./routes/adhesionRouter");
|
||
const stagenatRouter = require("./routes/stagenatRouter");
|
||
const rassemblementRouter = require("./routes/rassemblementRouter");
|
||
|
||
// Accueil du site
|
||
// [DOMAIN]/
|
||
app.use("/", appRouter);
|
||
|
||
// Adhésion
|
||
// [DOMAIN]/inscription adhésion
|
||
app.use("/inscription", adhesionRouter);
|
||
|
||
// STAGE NATIONAL
|
||
// [DOMAIN]/stagenational
|
||
app.use("/stagenational", stagenatRouter);
|
||
|
||
// RASSEMBLEMENT IDF
|
||
// [DOMAIN]/rassemblementidf
|
||
app.use("/rassemblementidf", rassemblementRouter); |