Page Contents

Home > @loopback/express

express package

The Express integration package for loopback-next.


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.


Class Description
ExpressApplication A LoopBack application with Express server
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.).
MiddlewareView Watch middleware binding keys for the given context and sort them by group

Abstract Classes

Abstract Class Description
BaseMiddlewareRegistry Base Context that provides APIs to register middleware
ExpressMiddlewareInterceptorProvider Base class for MiddlewareInterceptor provider classes


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.
getMiddlewareContext(request) A helper function to retrieve the MiddlewareContext/RequestContext from the request object
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.
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
sortListOfGroups(orderedGroups) Sort the groups by their relative order
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


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 MiddlewareContext.
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


Namespace Description
MiddlewareGroups Constants for middleware groups


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. This symbol can be referenced by name, before it is created.
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
MiddlewareOrKey A middleware function or binding key