afterRouter( )


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.

Method Declaration
Copy
Method Parameters
requestWixRouterRequestRequired

The routing request.


responseWixRouterResponseRequired

The router response.

Returns
Return Type:Promise<WixRouterResponse>

This example creates an after router hook on the myRouter prefix.

JavaScript
Did this help?

afterSitemap( )


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.

Method Declaration
Copy
Method Parameters
requestWixRouterSitemapRequestRequired

The sitemap request.


sitemapEntriesArray<WixRouterSitemapEntry>Required

The generated sitemap entries.

Returns
Return Type:Promise<Array<WixRouterSitemapEntry>>

This example creates an after sitemap hook on the myRouter prefix.

JavaScript
Did this help?

beforeRouter( )


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.

Method Declaration
Copy
Method Parameters
requestWixRouterRequestRequired

The routing request.

Returns
Return Type:Promise<WixRouterResponse>

This example creates a before router hook on the myRouter prefix.

JavaScript
Did this help?

customizeQuery( )


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.

Method Declaration
Copy
Method Parameters
requestWixRouterRequestRequired

The routing request.


routestringRequired

The resolved router URL pattern.


queryWixDataQueryRequired

The wix-data query.

Returns
Return Type:WixDataQuery

This example creates a customize query hook on the myRouter prefix.

JavaScript
Did this help?

forbidden( )


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

Method Declaration
Copy
Method Parameters
messagestring

The message to show.

Returns
Return Type:Promise<WixRouterResponse>
Create a forbidden response
JavaScript
Did this help?

next( )


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.

Method Declaration
Copy
Request
This method does not take any parameters
Returns
Return Type:Promise<WixRouterResponse>
Create a response to continue routing
JavaScript
Did this help?

notFound( )


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

Method Declaration
Copy
function notFound(message: string): Promise<WixRouterResponse>;
Method Parameters
messagestring

The message to show.

Returns
Return Type:Promise<WixRouterResponse>
Create a not found response
JavaScript
import { notFound } from "wix-router"; export function myRouter_Router(request) { return notFound(); }
Did this help?