Class: ServerRouter
Defined in: packages/core/src/router/ServerRouter.ts:17
The server-side implementation of the Router interface.
Extends
Constructors
new ServerRouter()
new ServerRouter(
pageManager
,factory
,dispatcher
,request
,response
,settings
):ServerRouter
Defined in: packages/core/src/router/ServerRouter.ts:42
Initializes the router.
Parameters
pageManager
The current page manager.
factory
The router factory used to create routes.
dispatcher
Dispatcher fires events to app.
request
The current HTTP request.
response
The current HTTP response.
settings
$Router settings.
undefined
| number
| { isSPARouted
: (url
, action
?) => boolean
; middlewareTimeout
: number
; }
Returns
Overrides
Properties
_currentlyRoutedPath
protected
_currentlyRoutedPath:string
=''
Defined in: packages/core/src/router/AbstractRouter.ts:93
Inherited from
AbstractRouter
._currentlyRoutedPath
_currentMiddlewareId
protected
_currentMiddlewareId:number
=0
Defined in: packages/core/src/router/AbstractRouter.ts:92
Middleware ID counter which is used to auto-generate unique middleware names when adding them to routeHandlers map.
Inherited from
AbstractRouter
._currentMiddlewareId
_dispatcher
protected
_dispatcher:Dispatcher
Defined in: packages/core/src/router/AbstractRouter.ts:62
Dispatcher fires events to app.
Inherited from
_factory
protected
_factory:RouteFactory
Defined in: packages/core/src/router/AbstractRouter.ts:58
Factory for routes.
Inherited from
_host
protected
_host:string
=''
Defined in: packages/core/src/router/AbstractRouter.ts:71
The application's host.
Inherited from
_isSPARouted
protected
_isSPARouted:undefined
| (url
,action
?) =>boolean
Defined in: packages/core/src/router/AbstractRouter.ts:95
Inherited from
_languagePartPath
protected
_languagePartPath:string
=''
Defined in: packages/core/src/router/AbstractRouter.ts:80
The URL path fragment used as a suffix to the _root
field
that specifies the current language.
Inherited from
AbstractRouter
._languagePartPath
_middlewareTimeout
protected
_middlewareTimeout:number
Defined in: packages/core/src/router/AbstractRouter.ts:94
Inherited from
AbstractRouter
._middlewareTimeout
_pageManager
protected
_pageManager:PageManager
Defined in: packages/core/src/router/AbstractRouter.ts:54
The page manager handling UI rendering, and transitions between pages if at the client side.
Inherited from
_protocol
protected
_protocol:string
=''
Defined in: packages/core/src/router/AbstractRouter.ts:67
The current protocol used to access the application, terminated by a
colon (for example https:
).
Inherited from
_root
protected
_root:string
=''
Defined in: packages/core/src/router/AbstractRouter.ts:75
The URL path pointing to the application's root.
Inherited from
_routeHandlers
protected
_routeHandlers:Map
<string
,AbstractRoute
<string
|RoutePathExpression
> |RouterMiddleware
>
Defined in: packages/core/src/router/AbstractRouter.ts:84
Storage of all known routes and middlewares. The key are their names.
Inherited from
Accessors
$dependencies
Get Signature
get
static
$dependencies():Dependencies
Defined in: packages/core/src/router/ServerRouter.ts:21
Returns
Methods
_extractRoutePath()
protected
_extractRoutePath(path
):string
Defined in: packages/core/src/router/AbstractRouter.ts:526
Strips the URL path part that points to the application's root (base URL) from the provided path.
Parameters
path
string
Relative or absolute URL path.
Returns
string
URL path relative to the application's base URL.
Inherited from
AbstractRouter
._extractRoutePath
_getCurrentlyRoutedPath()
_getCurrentlyRoutedPath():
string
Defined in: packages/core/src/router/AbstractRouter.ts:664
Returns path that is stored in private property when a route
method is called.
Returns
string
Inherited from
AbstractRouter
._getCurrentlyRoutedPath
_getMiddlewaresForRoute()
_getMiddlewaresForRoute(
routeName
):RouterMiddleware
[]
Defined in: packages/core/src/router/AbstractRouter.ts:642
Returns middlewares preceding given route name.
Parameters
routeName
string
Returns
Inherited from
AbstractRouter
._getMiddlewaresForRoute
_handle()
_handle(
route
,params
,options
?,action
?):Promise
<void
|UnknownParameters
>
Defined in: packages/core/src/router/AbstractRouter.ts:549
Handles the provided route and parameters by initializing the route's controller and rendering its state via the route's view.
The result is then sent to the client if used at the server side, or displayed if used as the client side.
Parameters
route
AbstractRoute
<string
| RoutePathExpression
>
The route that should have its associated controller rendered via the associated view.
params
Parameters extracted from the URL path and query.
options?
Partial
<RouteOptions
>
The options overrides route options defined in the
routes.js
configuration file.
action?
An action object describing what triggered this routing.
Returns
Promise
<void
| UnknownParameters
>
A promise that resolves when the page is rendered and the result is sent to the client, or displayed if used at the client side.
Inherited from
_runMiddlewares()
_runMiddlewares(
middlewares
,params
,locals
):Promise
<void
>
Defined in: packages/core/src/router/AbstractRouter.ts:677
Runs provided middlewares in sequence.
Parameters
middlewares
Array of middlewares.
undefined
| RouterMiddleware
[]
params
Router params that can be mutated by middlewares.
locals
The locals param is used to pass local data between middlewares.
Returns
Promise
<void
>
Inherited from
AbstractRouter
._runMiddlewares
add()
add(
name
,pathExpression
,controller
,view
,options
?):ServerRouter
Defined in: packages/core/src/router/AbstractRouter.ts:167
Adds a new route to router.
Parameters
name
string
The unique name of this route, identifying it among the rest of the routes in the application.
pathExpression
string
A path expression specifying the URL path
part matching this route (must not contain a query string),
optionally containing named parameter placeholders specified as
:parameterName
. The name of the parameter is terminated
by a forward slash (/
) or the end of the path expression
string.
The path expression may also contain optional parameters, which
are specified as :?parameterName
. It is recommended to
specify the optional parameters at the end of the path
expression.
controller
The full name of Object Container alias identifying the controller associated with this route.
view
The full name or Object Container alias identifying the view class associated with this route.
options?
Partial
<RouteOptions
>
Additional route options, specified how the navigation to the
route will be handled.
The onlyUpdate
can be either a flag signalling whether
the current controller and view instances should be kept if they
match the ones used by the previous route; or a callback function
that will receive the previous controller and view identifiers
used in the previously matching route, and returns a
boolean
representing the value of the flag. This flag is
disabled by default.
The autoScroll
flag signals whether the page should be
scrolled to the top when the navigation takes place. This flag is
enabled by default.
Returns
This router.
Throws
Thrown if a route with the same name already exists.
Inherited from
getBaseUrl()
getBaseUrl():
string
Defined in: packages/core/src/router/AbstractRouter.ts:243
Returns the application's absolute base URL, pointing to the public root of the application.
Returns
string
The application's base URL.
Inherited from
getCurrentRouteInfo()
getCurrentRouteInfo():
object
Defined in: packages/core/src/router/AbstractRouter.ts:271
Returns the information about the currently active route.
Returns
object
params
params:
RouteParams
<{}>
path
path:
string
route
route:
AbstractRoute
<string
|RoutePathExpression
>
Throws
Thrown if a route is not define for current path.
Inherited from
AbstractRouter
.getCurrentRouteInfo
getDomain()
getDomain():
string
Defined in: packages/core/src/router/AbstractRouter.ts:250
Returns the application's domain in the following form
${protocol}//${host}
.
Returns
string
The current application's domain.
Inherited from
getHost()
getHost():
string
Defined in: packages/core/src/router/AbstractRouter.ts:257
Returns application's host (domain and, if necessary, the port number).
Returns
string
The current application's host.
Inherited from
getPath()
getPath():
string
Defined in: packages/core/src/router/ServerRouter.ts:59
Returns the current path part of the current URL, including the query string (if any).
Returns
string
The path and query parts of the current URL.
Overrides
getProtocol()
getProtocol():
string
Defined in: packages/core/src/router/AbstractRouter.ts:264
Returns the current protocol used to access the application, terminated
by a colon (for example https:
).
Returns
string
The current application protocol used to access the application.
Inherited from
getRouteHandler()
getRouteHandler(
name
):undefined
|AbstractRoute
<string
|RoutePathExpression
> |RouterMiddleware
Defined in: packages/core/src/router/AbstractRouter.ts:220
Returns specified handler from registered route handlers.
Parameters
name
string
The route's unique name.
Returns
undefined
| AbstractRoute
<string
| RoutePathExpression
> | RouterMiddleware
Route with given name or undefined.
Inherited from
AbstractRouter
.getRouteHandler
getRouteHandlers()
getRouteHandlers():
Map
<string
,AbstractRoute
<string
|RoutePathExpression
> |RouterMiddleware
>
Defined in: packages/core/src/router/AbstractRouter.ts:297
Returns
Map
<string
, AbstractRoute
<string
| RoutePathExpression
> | RouterMiddleware
>
Inherit Doc
Inherited from
AbstractRouter
.getRouteHandlers
getRouteHandlersByPath()
getRouteHandlersByPath(
path
):object
Defined in: packages/core/src/router/AbstractRouter.ts:615
Returns the route matching the provided URL path part (the path may contain a query) and all middlewares preceding this route definition.
Parameters
path
string
The URL path.
Returns
object
The route
matching the path and middlewares preceding it or {}
(empty object) if no such route exists.
middlewares
middlewares:
RouterMiddleware
[]
route?
optional
route:AbstractRoute
<string
|RoutePathExpression
>
Inherited from
AbstractRouter
.getRouteHandlersByPath
getUrl()
getUrl():
string
Defined in: packages/core/src/router/AbstractRouter.ts:236
Returns the current absolute URL (including protocol, host, query, etc).
Returns
string
The current absolute URL.
Inherited from
handleError()
handleError(
params
,options
?,locals
?):Promise
<void
|UnknownParameters
>
Defined in: packages/core/src/router/AbstractRouter.ts:402
Handles an internal server error by responding with the appropriate "internal server error" error page.
Parameters
params
Parameters extracted from the current URL path and query.
options?
Partial
<RouteOptions
>
The options overrides route options defined in
the routes.js
configuration file.
locals?
The locals param is used to pass local data between middlewares.
Returns
Promise
<void
| UnknownParameters
>
A promise resolved when the error has been handled and the response has been sent to the client, or displayed if used at the client side.
Inherited from
handleNotFound()
handleNotFound(
params
,options
?,locals
?):Promise
<void
|UnknownParameters
>
Defined in: packages/core/src/router/AbstractRouter.ts:454
Handles a "not found" error by responding with the appropriate "not found" error page.
Parameters
params
Parameters extracted from the current URL path and query.
options?
Partial
<RouteOptions
>
The options overrides route options defined in
the routes.js
configuration file.
locals?
The locals param is used to pass local data between middlewares.
Returns
Promise
<void
| UnknownParameters
>
A promise resolved when the error has been handled and the response has been sent to the client, or displayed if used at the client side.
Inherited from
init()
init(
config
):void
Defined in: packages/core/src/router/AbstractRouter.ts:151
Initializes the router with the provided configuration.
Parameters
config
Router configuration.
The $Protocol
field must be the current protocol used to
access the application, terminated by a colon (for example
https:
).
The $Root
field must specify the URL path pointing to the
application's root.
The $LanguagePartPath
field must be the URL path fragment
used as a suffix to the $Root
field that specifies the
current language.
The $Host
field must be the application's domain (and the
port number if other than the default is used) in the following
form: ${protocol}//${host}
.
$Host
string
$LanguagePartPath
string
$Protocol
string
$Root
string
Returns
void
Inherited from
isClientError()
isClientError(
reason
):boolean
Defined in: packages/core/src/router/AbstractRouter.ts:507
Tests, if possible, whether the specified error was caused by the client's action (for example wrong URL or request encoding) or by a failure at the server side.
Parameters
reason
The encountered error.
Error
| Error
Returns
boolean
true
if the error was caused the action of the
client.
Inherited from
isRedirection()
isRedirection(
reason
):boolean
Defined in: packages/core/src/router/AbstractRouter.ts:514
Tests, if possible, whether the specified error lead to redirection.
Parameters
reason
The encountered error.
Error
| Error
Returns
boolean
true
if the error was caused the action of the
redirection.
Inherited from
link()
link(
routeName
,params
):string
Defined in: packages/core/src/router/AbstractRouter.ts:338
Generates an absolute URL (including protocol, domain, etc) for the specified route by substituting the route's parameter placeholders with the provided parameter values.
Parameters
routeName
string
The unique name of the route, identifying the route to use.
params
Parameter values for the route's parameter placeholders. Extraneous parameters will be added as URL query.
Returns
string
An absolute URL for the specified route and parameters.
Inherited from
listen()
listen():
ServerRouter
Defined in: packages/core/src/router/ServerRouter.ts:66
Registers event listeners at the client side window object allowing the router to capture user's history (history pop state - going "back") and page (clicking links) navigation.
The router will start processing the navigation internally, handling the user's navigation to display the page related to the URL resulting from the user's action.
Note that the router will not prevent forms from being submitted to the server.
The effects of this method can be reverted with unlisten
. This
method has no effect at the server side.
Returns
This router.
Overrides
redirect()
redirect(
url
,options
?):void
Defined in: packages/core/src/router/ServerRouter.ts:80
Redirects the client to the specified location.
At the server side the method results in responding to the client with a
redirect HTTP status code and the Location
header.
At the client side the method updates the current URL by manipulating the browser history (if the target URL is at the same domain and protocol as the current one) or performs a hard redirect (if the target URL points to a different protocol or domain).
The method will result in the router handling the new URL and routing the client to the related page if the URL is set at the client side and points to the same domain and protocol.
Parameters
url
string
= '/'
The URL to which the client should be redirected.
options?
Partial
<RouteOptions
>
The options overrides route options defined in
the routes.js
configuration file.
Returns
void
Overrides
remove()
remove(
name
):ServerRouter
Defined in: packages/core/src/router/AbstractRouter.ts:211
Removes the specified route from the router's known routes.
Parameters
name
string
The route's unique name, identifying the route to remove.
Returns
This router.
Inherited from
route()
route(
path
,options
?,action
?,locals
?):Promise
<void
|UnknownParameters
>
Defined in: packages/core/src/router/AbstractRouter.ts:363
Routes the application to the route matching the providing path, renders the route page and sends the result to the client.
Parameters
path
string
The URL path part received from the client, with optional query.
options?
Partial
<RouteOptions
>
The options overrides route options defined in
the routes.js
configuration file.
action?
An action object describing what triggered this routing.
locals?
The locals param is used to pass local data between middlewares.
Returns
Promise
<void
| UnknownParameters
>
A promise resolved when the error has been handled and the response has been sent to the client, or displayed if used at the client side.
Inherited from
unlisten()
unlisten():
ServerRouter
Defined in: packages/core/src/router/ServerRouter.ts:73
Unregisters event listeners at the client side window object allowing the router to capture user's history (history pop state - going "back") and page (clicking links) navigation.
The router will stop processing the navigation internally, handling the user's navigation to display the page related to the URL resulting from the user's action.
Note that the router will not prevent forms from being submitted to the server.
The effects of this method can be reverted with unlisten
. This method has no effect
at the server side.
Returns
This router.
Overrides
use()
use(
middleware
):ServerRouter
Defined in: packages/core/src/router/AbstractRouter.ts:199
Adds a new middleware to router.
Parameters
middleware
Middleware
function accepting routeParams as a first argument, which can be mutated
and locals
object as second argument. This can be used to pass data
between middlewares.
Returns
This router.
Throws
Thrown if a middleware with the same name already exists.