const dotenv = require('dotenv') dotenv.config(); const express = require('express') const cors = require('cors') const morgan = require('morgan') const app = express() app.use(morgan('dev')) app.use(cors({ origin: [process.env.CLIENT_URL], // your SPA origins credentials: true })); app.use(express.json()) app.set('trust proxy', 1); const port = process.env.SERVER_PORT; //session setup const path = require('path') const session = require('express-session') const passport = require('passport') const SQLiteStore = require('connect-sqlite3')(session); app.use(session({ secret: 'whatever', resave: false, saveUninitialized: false, store: new SQLiteStore({ db: 'sessions.db', dir: './' }), cookie: { httpOnly: true, sameSite: 'lax', domain: process.env.CLIENT_DOMAIN } })); app.use(passport.authenticate('session')); // Mount route modules const applicationsRouter = require('./routes/applications'); const { memberRanks, ranks } = require('./routes/ranks'); const members = require('./routes/members'); const loaHandler = require('./routes/loa') const { status, memberStatus } = require('./routes/statuses') const authRouter = require('./routes/auth') const { roles, memberRoles } = require('./routes/roles'); const { courseRouter, eventRouter } = require('./routes/course'); const morgan = require('morgan'); app.use('/application', applicationsRouter); app.use('/ranks', ranks); app.use('/memberRanks', memberRanks); app.use('/members', members); app.use('/loa', loaHandler); app.use('/status', status) app.use('/memberStatus', memberStatus) app.use('/roles', roles) app.use('/memberRoles', memberRoles) app.use('/course', courseRouter) app.use('/courseEvent', eventRouter) app.use('/', authRouter) app.get('/ping', (req, res) => { res.status(200).json({ message: 'pong' }); }); app.listen(port, () => { console.log(`Example app listening on port ${port} `) })