Files
noisedash/server/app.js
2021-08-08 23:52:44 -07:00

47 lines
1.3 KiB
JavaScript

const express = require('express')
const session = require('express-session')
const FileStore = require('session-file-store')(session)
const passport = require('passport')
const path = require('path')
const cookieParser = require('cookie-parser')
const config = require('config')
const authRouter = require('./routes/auth')
const usersRouter = require('./routes/users')
const profilesRouter = require('./routes/profiles')
const app = express()
const fileStoreOptions = {
path: config.get('Server.sessionFileStorePath')
}
require('./boot/db')()
require('./boot/auth')()
app.use(express.json())
app.use(express.urlencoded({ extended: false }))
app.use(cookieParser())
if (process.env.NODE_ENV === 'production') {
app.use(express.static(path.join(__dirname, '../dist')))
}
app.use(session({
store: new FileStore(fileStoreOptions),
secret: config.get('Server.sessionSecret'),
resave: true,
saveUninitialized: true
}))
app.use(function (req, res, next) {
const msgs = req.session.messages || []
res.locals.messages = msgs
res.locals.hasMessages = !!msgs.length
req.session.messages = []
next()
})
app.use(passport.initialize())
app.use(passport.authenticate('session'))
// Define routes
app.use('/', authRouter)
app.use('/', usersRouter)
app.use('/', profilesRouter)
module.exports = app