Basic Routing
Routing
There is only one method responsible for adding routes to your application:
However, the following methods are available for convenience, and are the ones you will use most often. Each method's name responds to an HTTP request method. For example, a route declared with app.get(...)
, will respond to HTTP GET
requests.
Your requestHandler
can be any Dart value, whether a function, or an object. See the Requests and Responses pages for detailed documentation.
Route paths do not have to begin with a forward slash, as leading and trailing slashes are stripped from route paths internally.
Route Parameters
Say you're building an API, or an MVC application. You typically want to serve the same view template on multiple paths, corresponding to different ID's. You can do this as follows, and all parameters will be available via req.params
:
Remember, route parameters must be preceded by a colon (':'). Parameter names must start with a letter or underscore, optionally followed by letters, underscores, or numbers. Parameters will match any character except a forward slash ('/') in a request URI.
Examples:
:id
:_hello
:param123
RegExp Routes
You can also use a RegExp
as a route pattern, but you may have to parse the URI yourself, if you need to access specific parameters.
Route parameters can also have custom regular expressions, to remove the requirement of manual parsing. Simply enclose the regular expression in a set of parentheses following the parameter's name.
Sub-Apps
You can mount
routers, or use
entire sub-apps.
Route Groups
Routes can also be grouped together. Route parameters will be applied to sub-routes automatically. Route groups can be nested as well.
Extended Documentation
For more documentation on the router, see its repository. package:angel_route
has no dart:io
or dart:mirrors
dependency, and it also supports browser use (both hash and push state).
Next Up...
Learn how middleware let you reuse functionality across your entire routing setup.
Last updated