sails.js
routing
Zoeken…
Opmerkingen
Routes zijn regels die Sails vertellen wat te doen bij een inkomend verzoek.
Routes worden gedefinieerd in config/routes.js
. De volgorde van de routes is aanzienlijk, omdat routes van boven naar beneden worden gekoppeld. Dit betekent dat als u een specifieke route heeft die ook kan worden gekoppeld aan een jokertekenroute, de specifieke route moet worden gedefinieerd boven de jokertekenroute.
Wanneer een aanvraag uw aanvraag binnenkomt, grijpt sails.js alle bijbehorende parameters en stelt deze voor u beschikbaar als params
op het aanvraagobject.
Eigenschappen in het routedoelobject worden doorgegeven aan de routeafhandelaar in het object req.options. De volgende zijn gereserveerde eigenschappen die het gedrag van de routeafhandelaar kunnen beïnvloeden:
Eigendom | Toepasselijke doeltypen | Data type | Details |
---|---|---|---|
skipAssets | allemaal | Boolean | Stel in op true als u niet wilt dat de route overeenkomt met URL's met stippen erin (bijvoorbeeld myImage.jpg). Hierdoor blijven uw routes met jokerteken noteren van overeenkomende URL's van statische elementen. Handig bij het maken van URL-naaktslakken. |
skipRegex | allemaal | regexp | Als het overslaan van elke URL met een punt te tolerant is, of als je de handler van een route wilt overslaan op basis van verschillende criteria, kun je skipRegex . Met deze optie kunt u een reguliere expressie of array van reguliere expressies opgeven om de aanvraag-URL aan te passen; als een van de wedstrijden succesvol is, wordt de handler overgeslagen. Merk op dat in tegenstelling tot de syntaxis voor het binden van een handler met een reguliere expressie, skipRegex _actual RegExp-objecten verwacht, geen strings. |
lokale bevolking | controller, weergave, blauwdruk, reactie | Woordenboek | Stelt standaard lokale variabelen in om door te geven aan elke weergave die wordt weergegeven tijdens het verwerken van het verzoek. |
cors | allemaal | Woordenboek of Boolean of String | Geeft aan hoe verzoeken om deze route van een andere oorsprong moeten worden verwerkt. |
bevolken | plan | Boolean | Geeft aan of de resultaten in een "find" of "findOne" blauwdrukactie gekoppelde modelvelden moeten hebben ingevuld. Standaard wordt de waarde ingesteld in config/blueprints.js . |
overslaan , beperken , sorteren , waar | plan | Woordenboek | Stel criteria in voor "zoeken" blauwdruk. |
Aangepaste RESTvolle routedefinities
module.exports.routes = {
'GET /foo': 'FooController.index',
'GET /foo/new': 'FooController.new',
'POST /foo/create': 'FooController.create',
'GET /foo/:id/edit': 'FooController.edit',
'PUT /foo/:id/update': 'FooController.update',
'GET /foo/:id': 'FooController.show',
'DELETE /foo/:id': 'FooController.delete',
};
redirect
module.exports.routes = { '/foo': '/bar', 'GET /google': 'http://www.google.com' };
Definieer aangepaste variabele voor alle weergaven
module.exports.routes = { // This function will be executed for all http verbs on all urls 'all /*', function (req, res, next) { // Expose the function `fooBar` to all views (via the locals object) res.locals.fooBar = function (arg1) { return 'foobar' + arg1; }; }, };
Sla activa (URL's met stippen erin) over van wildcardroute
module.exports.routes = { 'GET /foo/*': { fn: function(req, res) { res.send("FOO!"); }, skipAssets: true }, };
Routes met RegEx
module.exports.routes = {
// sends matching regex (few patterns) as 'page' param
'r|/foo/([0-9]+)|page': 'FooController.get',
'r|/foo/(.*)|page': 'FooController.get',
'r|/foo/(\\w+)|page': 'FooController.get'
};
URL-naaktslakken
module.exports.routes = {
'GET /blog/:year/:month/:day/:posttitle/': 'BlogController.showPost',
'GET /blog/:year/:month/:day/': 'BlogController.showDayArchive',
'GET /blog/:year/:month/': 'BlogController.showMonthArchive',
'GET /blog/:year/': 'BlogController.showYearArchive',
};
De parameters die in de URL zijn doorgegeven, kunnen vervolgens worden geopend in de bijbehorende controlleracties met req.param('year')
, req.param('month')
enz.
Een GET
verzoek aan /blog/2016/08/
BlogController.showMonthArchive
/blog/2016/08/
BlogController.showMonthArchive
controlleractie BlogController.showMonthArchive
, waarbij req.param('year')
de waarde 2016
en req.param('month')
de waarde 08
.