Middlewares
In Marble.js, middlewares are streams of side-effects that can be composed and plugged-in to our request/event lifecycle to perform certain actions before reaching the designated Effect.
Building your own middleware
MiddlewareEffect :: Observable<T> -> Observable<T>HttpMiddlewareEffect :: Observable<HttpRequest> -> Observable<HttpRequest>import { HttpMiddlewareEffect, HttpRequest } from '@marblejs/http';
import { Observable } from 'rxjs';
import { tap } from 'rxjs/operators';
const logger$ = (req$: Observable<HttpRequest>): Observable<HttpRequest> =>
req$.pipe(
tap(req => console.log(`${req.method} ${req.url}`)),
);
// same as
const logger$: HttpMiddlewareEffect = (req$, res) =>
req$.pipe(
tap(req => console.log(`${req.method} ${req.url}`)),
);Parameterized middleware
Sending a response earlier
Middlewares composition
via Effect
via combineRoutes
via httpListener
Last updated