39 lines
878 B
JavaScript
39 lines
878 B
JavaScript
|
import express from "express";
|
||
|
import cookieParser from "cookie-parser";
|
||
|
import Pino from "express-pino-logger";
|
||
|
import cors from "cors";
|
||
|
import routerStations from "./routes/v1/stations";
|
||
|
import config from "./config";
|
||
|
import { formatResponseError } from "./libs/Format";
|
||
|
|
||
|
// Initialisation du logger
|
||
|
const pino = new Pino({
|
||
|
prettyPrint: true
|
||
|
});
|
||
|
pino.logger.info(`Server started on port ${config.port}`);
|
||
|
|
||
|
const app = express();
|
||
|
|
||
|
app.use(cors());
|
||
|
|
||
|
// Permet de sauvegarder l'ip du client et non du proxy
|
||
|
app.set("trust proxy", config.trustProxy);
|
||
|
app.use(cookieParser());
|
||
|
// Utilisation de Pino
|
||
|
app.use(pino);
|
||
|
|
||
|
// Déclaration des routes
|
||
|
app.use("/v1/stations", routerStations);
|
||
|
|
||
|
// Gestion des erreurs
|
||
|
app.use((err, req, res, next) => {
|
||
|
res.error = err;
|
||
|
if (res.headersSent) {
|
||
|
next(err);
|
||
|
} else {
|
||
|
formatResponseError(res, err);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
module.exports = app;
|