From c31460c0cc819be31440ce0ad2b750517f6a6ac1 Mon Sep 17 00:00:00 2001 From: garrettmills Date: Tue, 9 Mar 2021 09:43:15 -0600 Subject: [PATCH] Add example route-wise middleware --- src/Units.extollo.ts | 3 ++- src/app/configs/server.config.ts | 8 ++++++++ src/app/http/middlewares/LogRequest.middleware.ts | 12 ++++++++++++ src/app/http/routes/app.routes.ts | 2 +- 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 src/app/configs/server.config.ts create mode 100644 src/app/http/middlewares/LogRequest.middleware.ts diff --git a/src/Units.extollo.ts b/src/Units.extollo.ts index 063c47b..a983c50 100644 --- a/src/Units.extollo.ts +++ b/src/Units.extollo.ts @@ -1,9 +1,10 @@ -import {Config, Controllers, HTTPServer, Routing} from '@extollo/lib' +import {Config, Controllers, HTTPServer, Middlewares, Routing} from '@extollo/lib' import {Database, Models} from "@extollo/orm"; export const Units = [ Config, Controllers, + Middlewares, Database, Models, diff --git a/src/app/configs/server.config.ts b/src/app/configs/server.config.ts new file mode 100644 index 0000000..009092c --- /dev/null +++ b/src/app/configs/server.config.ts @@ -0,0 +1,8 @@ +import {env} from "@extollo/lib" +import {ORMSession} from "@extollo/orm" + +export default { + session: { + driver: ORMSession, + } +} diff --git a/src/app/http/middlewares/LogRequest.middleware.ts b/src/app/http/middlewares/LogRequest.middleware.ts new file mode 100644 index 0000000..0cdad15 --- /dev/null +++ b/src/app/http/middlewares/LogRequest.middleware.ts @@ -0,0 +1,12 @@ +import {json, Logging, Middleware} from "@extollo/lib"; +import {Inject, Injectable} from "@extollo/di"; + +@Injectable() +export class LogRequest extends Middleware { + @Inject() + protected readonly logging!: Logging + + public async apply() { + this.logging.info(`Incoming request: ${this.request.method} @ ${this.request.path}`) + } +} diff --git a/src/app/http/routes/app.routes.ts b/src/app/http/routes/app.routes.ts index 8b06f9d..f94ddf1 100644 --- a/src/app/http/routes/app.routes.ts +++ b/src/app/http/routes/app.routes.ts @@ -1,3 +1,3 @@ import {Request, Route} from "@extollo/lib" -Route.get('/', 'main:Home.welcome') +Route.get('/', 'main:Home.welcome').pre('LogRequest')