# Class: Route

## vertx-web-js/route~ Route

#### new Route()

A route is a holder for a set of criteria which determine whether an HTTP request or failure should be routed to a handler.

Source:
  - vertx-web-js/route.js, line 31

### Methods

#### blockingHandler(requestHandler, ordered) → {Route}

Specify a blocking request handler for the route. This method works just like Route#handler excepted that it will run the blocking handler on a worker thread so that it won't block the event loop. Note that it's safe to call context.next() from the blocking handler as it will be executed on the event loop context (and not on the worker thread. If the blocking handler is ordered it means that any blocking handlers for the same context are never executed concurrently but always in the order they were called. The default value of ordered is true. If you do not want this behaviour and don't mind if your blocking handlers are executed in parallel you can set ordered to false.

##### Parameters:

Name | Type | Description
--- | --- | ---
`requestHandler` | function | the blocking request handler
`ordered` | boolean | if true handlers are executed in sequence, otherwise are run in parallel

Source:
  - vertx-web-js/route.js, line 178

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### consumes(contentType) → {Route}

Add a content type consumed by this route. Used for content based routing.

##### Parameters:

Name | Type | Description
--- | --- | ---
`contentType` | string | the content type

Source:
  - vertx-web-js/route.js, line 106

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### disable() → {Route}

Disable this route. While disabled the router will not route any requests or failures to it.

Source:
  - vertx-web-js/route.js, line 234

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### enable() → {Route}

Enable this route.

Source:
  - vertx-web-js/route.js, line 249

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### failureHandler(failureHandler) → {Route}

Specify a failure handler for the route. The router routes failures to failurehandlers depending on whether the various criteria such as method, path, etc match. There can be only one failure handler for a route. If you set this more than once it will overwrite the previous handler.

##### Parameters:

Name | Type | Description
--- | --- | ---
`failureHandler` | function | the request handler

Source:
  - vertx-web-js/route.js, line 202

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### getPath() → {string}

Source:
  - vertx-web-js/route.js, line 279

##### Returns:

the path prefix (if any) for this route

Type
  string

#### handler(requestHandler) → {Route}

Specify a request handler for the route. The router routes requests to handlers depending on whether the various criteria such as method, path, etc match. There can be only one request handler for a route. If you set this more than once it will overwrite the previous handler.

##### Parameters:

Name | Type | Description
--- | --- | ---
`requestHandler` | function | the request handler

Source:
  - vertx-web-js/route.js, line 153

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### last() → {Route}

Specify this is the last route for the router.

Source:
  - vertx-web-js/route.js, line 136

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### method(method) → {Route}

Add an HTTP method for this route. By default a route will match all HTTP methods. If any are specified then the route will only match any of the specified methods

##### Parameters:

Name | Type | Description
--- | --- | ---
`method` | Object | the HTTP method to add

Source:
  - vertx-web-js/route.js, line 44

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### order(order) → {Route}

Specify the order for this route. The router tests routes in that order.

##### Parameters:

Name | Type | Description
--- | --- | ---
`order` | number | the order

Source:
  - vertx-web-js/route.js, line 121

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### path(path) → {Route}

Set the path prefix for this route. If set then this route will only match request URI paths which start with this path prefix. Only a single path or path regex can be set for a route.

##### Parameters:

Name | Type | Description
--- | --- | ---
`path` | string | the path prefix

Source:
  - vertx-web-js/route.js, line 60

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### pathRegex(path) → {Route}

Set the path prefix as a regular expression. If set then this route will only match request URI paths, the beginning of which match the regex. Only a single path or path regex can be set for a route.

##### Parameters:

Name | Type | Description
--- | --- | ---
`path` | string | the path regex

Source:
  - vertx-web-js/route.js, line 76

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### produces(contentType) → {Route}

Add a content type produced by this route. Used for content based routing.

##### Parameters:

Name | Type | Description
--- | --- | ---
`contentType` | string | the content type

Source:
  - vertx-web-js/route.js, line 91

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### remove() → {Route}

Remove this route from the router

Source:
  - vertx-web-js/route.js, line 219

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### setRegexGroupsNames(groups) → {Route}

When you add a new route with a regular expression, you can add named capture groups for parameters.
However, if you need more complex parameters names (like "param_name"), you can add parameters names with this function. You have to name capture groups in regex with names: "p0", "p1", "p2", ...
For example: If you declare route with regex \/(?[a-z]*)\/(?[a-z]*) and group names ["param_a", "param-b"] for uri /hello/world you receive inside pathParams() the parameter param_a = "hello"

##### Parameters:

Name | Type | Description
--- | --- | ---
`groups` | Array.<string> | group names

Source:
  - vertx-web-js/route.js, line 298

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route

#### useNormalisedPath(useNormalisedPath) → {Route}

If true then the normalised request path will be used when routing (e.g. removing duplicate /) Default is true

##### Parameters:

Name | Type | Description
--- | --- | ---
`useNormalisedPath` | boolean | use normalised path for routing?

Source:
  - vertx-web-js/route.js, line 265

##### Returns:

a reference to this, so the API can be used fluently

Type
  Route