import 'reflect-metadata'; import path from 'path'; import express, { Request, Response, NextFunction } from 'express'; import 'express-async-errors'; import cors from 'cors'; import { errors } from 'celebrate'; import uploadConfig from '@config/upload'; import AppError from '@shared/errors/AppError'; import routes from './routes'; import '@shared/infra/typeorm'; import '@shared/container'; const app = express(); app.use(express.json()); app.use(cors()); app.use(routes); app.use('/uploads', express.static(path.resolve(uploadConfig.uploadsFolder))); app.use( '/uploads/photos', express.static(path.resolve(uploadConfig.photosFolder)), ); app.use(errors()); app.use((err: Error, request: Request, response: Response, _: NextFunction) => { if (err instanceof AppError) { return response.status(err.statusCode).json({ status: 'error', message: err.message, }); } console.log(err); return response.status(500).json({ status: 'error', message: 'Internal server error', }); }); export default app;