Page Contents

Home > @loopback/express

express package

The Express integration package for loopback-next.

Remarks

This module introduces Koa style cascading middleware that leverage async/await. It also enables the ability to plug in existing Express middleware as LoopBack middleware or interceptors so that they can be used at sequence/action, global interceptor, and local interceptor tiers.

This module also serves as a standalone extension to Express to provide extensibility and composability for large-scale Express applications by leveraging LoopBack’s Dependency Injection and Extension Point/Extension pattern.

Classes

Class Description
BaseMiddlewareRegistry Base Context that provides APIs to register middleware
ExpressApplication A LoopBack application with Express server
ExpressMiddlewareInterceptorProvider Base class for MiddlewareInterceptor provider classes
ExpressServer An Express server that provides middleware composition and injection
InvokeMiddlewareProvider Extension point for middleware to be run as part of the sequence actions
MiddlewareChain An interceptor chain of middleware. This represents a list of cascading middleware functions to be executed by the order of group names.
MiddlewareContext A per-request Context for middleware to combine an IoC container with handler context (request, response, etc.).

Functions

Function Description
asMiddleware(options) Template function for middleware bindings
buildName(middlewareFactory, providedName, suffix) Build a name for the middleware
createInterceptor(middlewareFactory, middlewareConfig) Create an interceptor function from express middleware.
createMiddleware(middlewareFactory, middlewareConfig) An adapter function to create a LoopBack middleware from Express middleware factory function and configuration object.
createMiddlewareBinding(middlewareProviderClass, options) Create a binding for the middleware provider class
createMiddlewareInterceptorBinding(middlewareProviderClass, options) Create a binding for the middleware based interceptor
defineInterceptorProvider(middlewareFactory, defaultMiddlewareConfig, options) Define a provider class that wraps the middleware as an interceptor
executeExpressRequestHandler(handler, request, response) Execute an Express-style callback-based request handler.
invokeExpressMiddleware(middlewareCtx, handlers) Invoke a list of Express middleware handler functions
invokeMiddleware(middlewareCtx, options) Discover and invoke registered middleware in a chain for the given extension point.
MiddlewareMixin(superClass)  
registerExpressMiddleware(ctx, middlewareFactory, middlewareConfig, options) Bind a Express middleware to the given context
registerExpressMiddlewareInterceptor(ctx, middlewareFactory, middlewareConfig, options) Bind a middleware interceptor to the given context
registerMiddleware(ctx, middleware, options) Bind the middleware function or provider class to the context
toExpressMiddleware(ctx) An adapter function to create an Express middleware handler to discover and invoke registered LoopBack-style middleware in the context.
toInterceptor(firstHandler, additionalHandlers) Wrap an express middleware handler function as an interceptor
toMiddleware(firstHandler, additionalHandlers) An adapter function to create a LoopBack middleware that invokes the list of Express middleware handler functions in the order of their positions

Interfaces

Interface Description
BaseMiddlewareBindingOptions Options to create a middleware binding for the sequence action or interceptor.
ExpressMiddlewareFactory Interface for an express middleware factory
HandlerContext An object holding HTTP request, response and other data needed to handle an incoming HTTP request.
InvokeMiddleware Interface for the invoker of middleware registered under the an extension point name.
InvokeMiddlewareOptions Options for InvokeMiddleware
Middleware Interface LoopBack 4 middleware to be executed within sequence of actions. A middleware for LoopBack is basically a generic interceptor that uses RequestContext.The signature of a middleware function is described at Middleware. It’s very much the same as Koa middleware.
MiddlewareBindingOptions Options to bind middleware as a request context based interceptor within an InvokeMiddleware action of the sequence.
MiddlewareCreationOptions Options for defining a middleware
MiddlewareInterceptorBindingOptions Options to bind a middleware as an interceptor to the context
MiddlewareRegistry A context that allows middleware registration

Namespaces

Namespace Description
MiddlewareBindings  

Variables

Variable Description
DEFAULT_MIDDLEWARE_CHAIN Default extension point name for middleware
DEFAULT_MIDDLEWARE_GROUP Default order group name for Express middleware based global interceptors
GLOBAL_MIDDLEWARE_INTERCEPTOR_NAMESPACE Default namespace for Express middleware based global interceptors
MIDDLEWARE_CONTEXT A symbol to store MiddlewareContext on the request object
MIDDLEWARE_INTERCEPTOR_NAMESPACE Default namespace for Express middleware based local interceptors
MIDDLEWARE_NAMESPACE Default namespaces for middleware

Type Aliases

Type Alias Description
ExpressRequestHandler Type alias for Express RequestHandler
ExpressServerConfig Configuration for a LoopBack based Express server