index.js

const express = require('express');
const config = require("./config");
const MainRouer = require('./router');
const ConnexionManager = require("./database/ConnexionManager");
const DatabaseDefinitions = require("./database/DatabaseDefinitions");
const logger = require('./Logger');
const path = require('path');
const cors = require('cors');
const fileUpload = require("express-fileupload");


/**
 * The mail Myintranet name space
 * @namespace Myintranet
 */


/**
 * the main module. To execute `node index.js` to start the application in production mode.
 * will load the file config.js
 * @module MAIN
 */



let app = express();
app.use(express.json());
app.use(cors({}));
app.use(express.urlencoded());
app.use(express.static('www'));
app.use(express.static('www/assets'));
let cm = new ConnexionManager(config)
let db = new DatabaseDefinitions(cm.get()).getDb();
app.use((request, response, next) => {
    request.db = db;
    request.logger = logger;
    next();
})
app.use(fileUpload({
    createParentPath: true,
    limits: { fileSize: 100 * 1024 * 1024 },
}))

let mainRouter = new MainRouer(db)
app.use("/api", mainRouter.get())
app.get('*', (req, res) => {
    res.sendFile(path.join(__dirname, 'www/index.html'));
});
let prodPort = config.port || 9933;
app.listen(prodPort, () => {
    console.log(`
    ░█▄█░█░█░▀█▀░█▀█░▀█▀░█▀▄░█▀█░█▀█░█▀▀░▀█▀
    ░█░█░░█░░░█░░█░█░░█░░█▀▄░█▀█░█░█░█▀▀░░█░
    ░▀░▀░░▀░░▀▀▀░▀░▀░░▀░░▀░▀░▀░▀░▀░▀░▀▀▀░░▀░   
            started at : ${new Date(Date.now()).toLocaleDateString()}
            By : ayoub Hassani (d3v4pp) <ayoub@d3v4pp.fr>
            port : ${prodPort}
            storage : ${path.resolve(config.storageLocation)}
    `)
});