Skip to content
Snippets Groups Projects
index.js 1.52 KiB
const express = require("express");
const session = require("express-session");
const cors = require("cors");
require("dotenv").config();

const app = express();
app.use(express.json());
app.use(cors());
app.use(
  session({
    secret: "this is totally secret",
    resave: false,
    saveUninitialized: false,
    cookie: { secure: true },
  })
);

// create connection to db and run initialization file
const { pool } = require("./config/database/database.config");

// establish port
const port = process.env.PORT || 3000;

// set up CAS
const passport = require("passport");
const casStrategy = require("./config/auth/auth.cas");
app.use(passport.initialize());
app.use(passport.session());
passport.use(casStrategy);
passport.serializeUser(function (user, done) {
  done(null, user.username);
});
passport.deserializeUser(function (username, done) {
  done(null, {
    username,
  });
});

// Set Current User
app.use(function (req, res, next) {
  res.locals.currentUser = req.user;
  next();
});

// import routes
require("./config/auth/auth.routes")(app);

// Basic route to check if server is running
app.get("/api", (req, res) => {
  res.send("Hello World! This app is running.");
});

async function testDBConnection() {
  try {
    const [results] = await pool.query("SELECT 1");
    console.log("Database connection test successful. Results:", results);
  } catch (err) {
    console.error("Error testing database connection:", err);
  }
}

testDBConnection();

app.listen(port, () => {
  console.log(`Server is running on port ${port}`);
});