Router
The Router module provides routing functionalities. It serves as the base routing mechanism for both client and server. Leveraging the middleware concept, it will keep testing all the middleware until a middleware throws a result.
Detailed Description
The Router and RouterAsync classes are designed to provide a robust and flexible routing mechanism for your application. By leveraging middleware, these classes allow you to define routes and handle requests in a modular and reusable way.
Router
The Router class is used for synchronous routing. It allows you to define routes and middleware that will be executed in a synchronous manner. This is useful for scenarios where you need to handle requests quickly and do not require asynchronous operations.
RouterAsync
The RouterAsync class is used for asynchronous routing. It allows you to define routes and middleware that will be executed asynchronously. This is useful for scenarios where you need to perform asynchronous operations, such as fetching data from a database or making external API calls.
Both classes provide methods for defining routes, adding middleware, and using predefined routes. By using these classes, you can create a flexible and maintainable routing system for your application.
Classes
Router
The Router class implements synchronous routing.
Methods
route(...args: RouteBuilderArguments): MiddlewareRoute<T>useRoutes(routes: Routes<T, unknown>): thisuseMiddleware(route: string | UriTemplate, ...middlewares: Middleware<T>[]): thisuse(...middlewares: ((...args: T) => unknown)[]): this
RouterAsync
The RouterAsync class implements asynchronous routing.
Methods
route(...args: RouteBuilderArguments): MiddlewareRouteAsync<T>useRoutes(routes: Routes<T, Promise<unknown>>): thisuseMiddleware(route: string | UriTemplate, ...middlewares: MiddlewareAsync<T>[]): thisuse(...middlewares: ((...args: T) => Promise<unknown>)[]): this