cnc-speed-calculator/app.js
Sebastien Clement 39a02da5f4 🔨 Add manager
2021-01-30 20:33:06 +01:00

100 lines
3.3 KiB
JavaScript

const createError = require('http-errors');
const express = require('express');
const path = require('path');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser')
const logger = require('./config/winston');
const sassMiddleware = require('node-sass-middleware');
const expressWinston = require('express-winston');
const flash = require('connect-flash');
const i18n = require('i18n');
const session = require('express-session');
const indexRouter = require('./routes/index');
const loginRouter = require('./routes/login');
const presetManagerRouter = require('./routes/preset-manager');
const passport = require('./config/passport');
const app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
i18n.configure({
// setup some locales - other locales default to en silently
locales: ['en', 'fr'],
// where to store json files - defaults to './locales'
directory: __dirname + '/locales'
});
// Logger
app.use(expressWinston.logger({
winstonInstance: logger,
meta: true, // optional: control whether you want to log the meta data about the request (default to true)
expressFormat: true, // Use the default Express/morgan request formatting. Enabling this will override any msg if true. Will only output colors with colorize set to true
colorize: true, // Color the text and status code, using the Express/morgan color palette (text: gray, status: default green, 3XX cyan, 4XX yellow, 5XX red).
level: function (req, res) {
if (res.statusCode < 500)
return "debug";
return "warn";
}
}));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(session({ secret: 'keyboard cat', resave: false, saveUninitialized: false }));
app.use(cookieParser());
app.use(bodyParser.urlencoded({ extended: true }));
// app.use(sassMiddleware({
// src: path.join(__dirname, 'public'),
// dest: path.join(__dirname, 'public'),
// indentedSyntax: false, // true = .sass and false = .scss
// sourceMap: true,
// debug: false,
// response: false,
// log: function (severity, key, value) { logger.log(severity, `node-sass-middleware ${key} : ${value}`); }
//
// }));
app.use(express.static(path.join(__dirname, 'public')));
app.use(i18n.init)
app.use(passport.initialize());
app.use(passport.session());
app.use(flash());
app.use('/', indexRouter);
app.use('/', loginRouter);
app.use('/', presetManagerRouter);
// Boootstrap JS Files
app.use('/js/bootstrap.min.js', express.static(path.join(__dirname, '/node_modules/bootstrap/dist/js/bootstrap.min.js')))
// Fontawesome Files
app.use('/css/fa-all.min.css', express.static(path.join(__dirname, '/node_modules/@fortawesome/fontawesome-free/css/all.min.css')))
app.use('/webfonts/', express.static(path.join(__dirname, '/node_modules/@fortawesome/fontawesome-free/webfonts')))
// catch 404 and forward to error handler
app.use(function (req, res, next) {
next(createError(404));
});
// error handler
app.use(function (err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;