var fs = require('fs') var path = require('path') var app, express = require('express') var http = require('http') var https = require('https') var expressLiquid = require('express-liquid') var session = require('express-session') var csrf = require('csurf') var OK_PRODUCTION = process.env.OK_PRODUCTION == "true" var app, server, io var site = {} site.init = function(){ app = site.app = express() app.disable('x-powered-by') app.use(require('cookie-parser')()) app.use(require('body-parser').urlencoded({ extended: true })) app.set('trust proxy', 1) app.use(session({ // store: sessionStore, secret: 'b4mb00pl1nk0$yn3rgY', name: 'panda', resave: false, saveUninitialized: true, proxy: true, cookie: { secure: true } })) app.use(express.static( path.join(__dirname, '../public'))) app.set('views', path.join(__dirname, '../views')) app.set('view engine', 'liquid') app.engine('liquid', expressLiquid({ traceError: false })) app.use(expressLiquid.middleware) var csrfMiddleware = csrf() if (OK_PRODUCTION) { server = site.server = site.http(app) } else { server = site.server = site.https(app) } io = site.io = require('socket.io')(server) io.on('connection', function(socket){ // client.on('event', function(data){}) // client.on('disconnect', function(){}) }) var router = new express.Router app.use(router) var csrfMiddleware = csrf() // router.post("*", csrfMiddleware) router.get("/", csrfMiddleware, function(req,res){ res.locals._csrf = req.csrfToken() res.render("index") }) return router } site.http = function(app){ var server = http.createServer(app).listen(process.env.PORT, function () { var port = server.address().port console.log('Server listening at https://lvh.me:%s', port) }) return server } site.https = function(app){ var credentials = { key: fs.readFileSync('./certs/lvh.me.key', 'utf8'), cert: fs.readFileSync('./certs/lvh.me.cert', 'utf8'), } var server = https.createServer(credentials, app).listen(process.env.PORT, function () { var port = server.address().port console.log('Server listening at https://lvh.me:%s', port) }) return server } module.exports = site