import express from 'express'; import createError from 'http-errors'; import { errorRouter } from './routes/errorRouter'; import { finalErrorRouter } from './routes/finalErrorRouter'; import { metricsRouter } from './routes/metricsRouter'; import { pingRouter } from './routes/pingRouter'; import { healthcheckRouter } from './routes/healthcheckRouter'; import { SupportedRoutes } from './types/enums/SupportedRoutes'; const app = express(); // u slučaju kada se server vrti iza proxy-a // ovaj flag će natjerati Express da informacije poput // IP adrese klijenta, protokola uzima iz X-Forward-* // HTTP header polja, koja postavlja proxy app.set('trust proxy', true); // prometheus sa ove rute dohvaća zadnje važeću statistiku app.use(SupportedRoutes.metricsPath, metricsRouter); app.use(SupportedRoutes.ping, pingRouter); app.use(SupportedRoutes.healthcheck, healthcheckRouter); // default handler app.use((req, res, next) => next(createError(404))); // error handler za sve predviđene greške app.use(errorRouter); // error router za nepredviđene greške app.use(finalErrorRouter); export default app;