| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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();
- app.listen(3000, () => console.log("Server ready on port 3000."));
- export { app };
|