Registers a hook that is called after a router.
The afterRouter
hook is a data binding router hook that is triggered
after the router with the specified prefix has bound the data, but before
the page is displayed. The router can be a code router or the data binding
router that binds data to a dynamic page.
The afterRouter()
function is not a function that you call from your code.
You define the function in a file named routers.js in the Code File's Backend section of the Velo Sidebar.
The function is called as described above.
Use this hook with a code router to change the router's response based on the data that was retrieved. For example, you can have two versions of a page, one for portrait oriented images and another for landscape oriented ones. After the image is pulled from the database, you can show the page that corresponds to the image's orientation.
The function receives a WixRouterRequest
object containing information about the incoming request and a WixRouterResponse
object containing information about the router's response.
The function returns a WixRouterResponse
object that causes the router to respond with a specified page, specified data,
and a success response code, or respond with any other HTTP response code.
The returned response can be either the response received or a new response
that overrides the one received.
If the function does not return a WixRouterResponse
,
the response received as the response
parameter acts as the effective router response.
Typically, the response is created using one of the ok()
,
forbidden()
, notFound()
, redirect()
,
or sendStatus()
functions.
The routing request.
The router response.
This example creates an after router hook on the myRouter
prefix.
Registers a hook that is called after a sitemap is created.
The afterSitemap
hook is a data binding router hook that is triggered
after a sitemap is created for the specified router.
The afterSitemap()
function is not a function that you call from your code.
You define the function in a file named routers.js in the Code File's Backend section of the Velo Sidebar.
The function is called as described above.
Use this hook to revise the list of pages in your sitemap. For example, you can add a search page's information to your sitemap.
The function returns an array of WixRouterSitemapEntry
objects. Typically the returned array is a modified version of the one the
function received.
If the function does not return a WixRouterSitemapEntry
array, the array received as the sitemapEntries
parameter acts as the router's effective sitemap entries.
The sitemap request.
The generated sitemap entries.
This example creates an after sitemap hook on the myRouter
prefix.
Registers a hook that is called before a router.
The beforeRouter
hook is a data binding router hook that is triggered
before the router with the specified prefix has bound the data to the page.
The router can be a code router or the data binding router that binds data
to a dynamic page.
The beforeRouter()
function is not a function that you call from your code.
You define the function in a file named routers.js in the Code File's Backend section of the Velo Sidebar.
The function is called as described above.
Use this hook with a code router to route requests to a different page or return an error response. For example, you can check who is requesting the page and then decide based on the user's role whether to let the router continue to the next step or to return an error type response code.
The function receives a WixRouterRequest
object containing information about the incoming request.
The function returns a WixRouterResponse
object that causes the router to continue its routing, or respond with an
HTTP response code.
Typically, the response is created using one of the next()
,
forbidden()
, notFound()
, redirect()
,
or sendStatus()
functions.
The routing request.
This example creates a before router hook on the myRouter
prefix.
Registers a hook that is called after a route is resolved by the data binding router, but before the wix-data query is executed.
The customizeQuery
hook is a data binding router hook that is triggered
before the data query is executed for the pages in the specified router.
The customizeQuery()
function is not a function that you call from your code.
You define the function in a file named routers.js in the Code File's Backend section of the Velo Sidebar.
The function is called as described above.
Use this hook to further refine or
change the query that will determine what data is bound to your page's
dataset. For example, you can filter the query to only return items that have
a status
field set to "active"
.
The function returns a WixDataQuery
object.
Typically the returned query is a modified version of the one the
function received.
The customizeQuery()
hook is triggered when using dynamic pages, but not
when you code your own router.
The routing request.
The resolved router URL pattern.
The wix-data query.
This example creates a customize query hook on the myRouter
prefix.
Returns a response with a status code 403 (Forbidden) and instructs the router to show a 403 page.
The forbidden()
function is used in the router()
, beforeRouter()
,
and afterRouter()
hooks to indicate that the requested page
is forbidden. Optionally, you can pass a message that otherwise defaults to
'Forbidden'.
The message to show.
Returns a response that instructs the router to continue.
The next()
function is used in the beforeRouter()
hook
to indicate the hook has completed and the routing should continue to the
data binding router.
Returns a response with a status code 404 (Not Found) and instructs the router to show a 404 page.
The notFound()
function is used in the router()
, beforeRouter()
,
and afterRouter()
hooks to indicate that the requested page
was not found. Optionally, you can pass a message that otherwise defaults to
"Not Found".
function notFound(message: string): Promise<WixRouterResponse>;
The message to show.
import { notFound } from "wix-router";
export function myRouter_Router(request) {
return notFound();
}