Middleware
HTTP middleware is an useful mechanism in web apps. It is responsible for filtering and altering incoming requests.
Basic Middleware
To create a middleware, you can leverage the CLI:
terminal
entropy make middleware auth
An example midleware class for authentication may look like this:
src/auth/auth.middleware.ts
import { HttpRequest, Middleware } from '@entropy/http'; export class AuthMiddleware implements Middleware { public async handle(request: HttpRequest): Promise
{ if (!await request.session.get('authenticated')) { // Redirect user... } } }
Middleware is called by the handle
method before a controller action.
Using Middleware
In order to use a middleware, you should register it for a route using the middleware
route option:
src/users/user.controller.ts
import { HttpRequest } from '@entropy/http'; import { Controller, Route } from '@entropy/router'; export class UserController extends Controller { @Route.Get('/users/:id/dashboard', { middleware: [AuthMiddleware], }) public dashboard([id]: [string], request: HttpRequest) { // This route is visible only for authenticated users } }