Ir al contenido
Español

ExpressBackend

Esta página aún no está disponible en tu idioma.

Defined in: src/http/backend/ExpressBackend.ts:124

Express-backed HTTP backend — drop-in alternative to the Fastify default. Intended for teams that already have an Express-based plugin ecosystem (session stores, auth, observability) they want to reuse.

express is an optional peer dependency: install it only if you use this backend. When no app is injected, the backend imports express dynamically and builds a fresh one.

new ExpressBackend(options?): ExpressBackend

Defined in: src/http/backend/ExpressBackend.ts:138

ExpressBackendOptions = {}

ExpressBackend

readonly name: "express" = 'express'

Defined in: src/http/backend/ExpressBackend.ts:125

HttpServerBackend.name

getApp(): ExpressAppLike

Defined in: src/http/backend/ExpressBackend.ts:147

Inject / access the underlying Express app — useful for native middleware.

ExpressAppLike


listen(host, port): Promise<ServerBinding>

Defined in: src/http/backend/ExpressBackend.ts:175

Start listening. Returns a ServerBinding with the actual bound port.

string

number

Promise<ServerBinding>

HttpServerBackend.listen


registerRoute(route): void

Defined in: src/http/backend/ExpressBackend.ts:152

Register all routes before listen is called. Duplicate paths must be rejected.

RouteRegistration

void

HttpServerBackend.registerRoute


registerWebSocket(reg): void

Defined in: src/http/backend/ExpressBackend.ts:156

Optional capability: register a WebSocket endpoint. Backends that implement this support websocket() routes; absence is detected by HttpExtension.bind and reported as a clear error.

WebsocketRouteRegistration

void

HttpServerBackend.registerWebSocket


setDefaultResponseHeaders(headers): void

Defined in: src/http/backend/ExpressBackend.ts:171

Optional: replace the header map the backend writes ahead of every response it emits — including the error, not-found and upgrade-reject responses no middleware ever sees. A response’s own header must still win, so these are written first and overwritten, not merged over.

HttpExtension wires withSecurityHeaders(...) here and passes {} for the opt-out. It is only called when that was configured: a backend comes with its own default (DEFAULT_RESPONSE_SECURITY_HEADERS for the shipped ones), so an untouched builder must not overwrite it.

Readonly<Record<string, string>>

void

HttpServerBackend.setDefaultResponseHeaders


setErrorHandler(handler): void

Defined in: src/http/backend/ExpressBackend.ts:167

Optional: register a last-resort error handler. It MUST see both errors thrown by route handlers AND backend-internal errors (body parsing, etc.); if it throws, the backend falls back to its default error mapping. HttpExtension wires withErrorHandler here.

(err, request) => HttpResponse | Promise<HttpResponse>

void

HttpServerBackend.setErrorHandler


setNotFound(handler): void

Defined in: src/http/backend/ExpressBackend.ts:163

Optional: register a method-agnostic not-found handler, invoked for any request that matched no route (including unmatched OPTIONS/HEAD). HttpExtension wires fallback() here. If the handler throws, the backend applies its default error mapping.

(request) => HttpResponse | Promise<HttpResponse>

void

HttpServerBackend.setNotFound