Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | /** * @module Server.Express * ExpressJS Server */ import express = require('express'); import session = require('express-session'); import logger = require('morgan'); import sassMiddleware = require('node-sass-middleware'); import path = require('path'); import indexRoutes from './routes'; import charactersRoutes from './routes/characters'; import usersRoutes from './routes/users'; export class ExpressServer { public readonly session; public readonly app; public constructor(reduxStoreMiddleware) { const app = express(); // View engine app.set('views', path.join(__dirname, '/views')); app.set('view engine', 'pug'); const FileStore = require('session-file-store')(session); // Session manager this.session = session({ secret: 'my-secret', store: new FileStore({ logFn: () => { } }), cookie: { secure: false, // false for dev, true for prod }, resave: false, saveUninitialized: false, }); // Middlewares app.use(reduxStoreMiddleware); app.use(logger('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(sassMiddleware({ src: path.join(__dirname, 'public'), dest: path.join(__dirname, 'public'), indentedSyntax: false, // true = .sass and false = .scss sourceMap: true, })); app.use(express.static(path.join(__dirname, 'public'))); app.use(express.static(path.join(__dirname, '../..', 'dist', 'client'))); app.use(this.session); app.use((req, res: express.Response, next) => { if (req.session !== undefined) { res.locals.user = req.session.user; } next(); }); app.use('/users', usersRoutes); app.use('/characters', charactersRoutes); app.use('*', indexRoutes); // error handler app.use((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'); }); this.app = app; } } |