| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import createError from "http-errors";
- import express from 'express';
- import path from 'path';
- import cookieParser from 'cookie-parser';
- import logger from 'morgan';
- import mongoose from "mongoose";
- import {passport} from "./passport.js";
- import {router as authRouter} from "./routes/auth.js";
- import {router as memberRouter} from "./routes/members.js";
- import {router as appointmentsRouter} from "./routes/appointments.js";
- import {fileURLToPath} from "url";
- import cors from "cors";
- const __filename = fileURLToPath(import.meta.url);
- const __dirname = path.dirname(__filename);
- const app = express();
- const DB_CONNECTION_STRING = process.env.DB_CONNECTION.toString();
- async function connect() {
- await mongoose.connect(DB_CONNECTION_STRING)
- .then(() => console.log('Connected to the database'))
- .catch(err => console.error('Database connection error:', err));
- }
- // view engine setup
- app.set('views', path.join(__dirname, 'views'));
- app.set('view engine', 'pug');
- app.use(cors());
- app.use(logger('dev'));
- app.use(express.json());
- app.use(express.urlencoded({ extended: false }));
- app.use(cookieParser());
- app.use(express.static(path.join(__dirname, 'public')));
- app.use(passport.initialize());
- app.use('/api/users', memberRouter);
- app.use('/api/schedule', appointmentsRouter);
- app.use('/api/auth', authRouter);
- // catch 404 and forward to error handler
- app.use(function(req, res, next) {
- next(createError(404));
- });
- // error handler
- app.use(function(err, req, res, next) {
- // set locals, only providing error in development
- res.locals.message = err.message;
- res.locals.error = req.app.get('env') === 'development' ? err : {};
- // render the error page
- res.status(err.status || 500);
- res.render('error');
- });
- connect();
- export {app};
|