Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import Handlebars from 'express-handlebars'
- import Express from 'express'
- import Routes from './routes'
- import Path from 'path'
- import passport from 'passport'
- import session from 'express-session'
- import expressValidator from 'express-validator'
- import flash from 'connect-flash'
- import cookieParser from 'cookie-parser'
- class HTTP {
- static server = null;
- static init = async () => {
- await HTTP.prepare()
- await HTTP.route()
- await HTTP.listen()
- }
- static prepare = () => {
- HTTP.server = Express()
- const MySQLStore = require('express-mysql-session')(session);
- var options = {
- host: process.env.DB_HOST,
- user: process.env.DB_USER,
- password: process.env.DB_PASSWORD,
- database : process.env.DB_NAME
- };
- var sessionStore = new MySQLStore(options);
- HTTP.server.set('view engine', '.hbs')
- HTTP.server.set('views', Path.resolve('./public/views'))
- HTTP.server.engine('.hbs', Handlebars({ defaultLayout: 'user', extname: '.hbs' }))
- HTTP.server.use('/assets', Express.static(Path.resolve('./public/assets')))
- HTTP.server.use(expressValidator())
- HTTP.server.use(cookieParser())
- HTTP.server.use(session({
- secret: '1g2o3l4d5f6i7s8h9',
- resave: false,
- store: sessionStore,
- saveUninitialized: false,
- // cookie: { secure: true }
- }))
- HTTP.server.use(passport.initialize())
- HTTP.server.use(passport.session())
- HTTP.server.use(flash())
- HTTP.server.use(function(req,res, next){
- res.locals.isAuthenticated = req.isAuthenticated();
- next();
- })
- }
- static route = () => {
- for (let i = 0; i < Routes.length; i++) {
- let route = Routes[i]
- HTTP.server[route.type](route.path, route.controller)
- }
- }
- static listen = () => {
- HTTP.server.listen(process.env.HTTP_PORT, () => {
- console.log(`\x1b[33m[GOLDFISH]\x1b[0m Listening on port \x1b[32m${process.env.HTTP_PORT} \x1b[0m`)
- })
- }
- }
- export default HTTP
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement