sails.js
routing
Sök…
Anmärkningar
Rutter är regler som säger Seglar vad man ska göra när man möter en inkommande begäran.
Rutter definieras i config/routes.js
. Ruttarnas ordning är betydande eftersom rutter matchas uppifrån och ned. Detta innebär att om du har en specifik rutt som också kan matchas med en jokerteckenrutt, bör den specifika rutten definieras ovanför jokerteckenrutten.
När en förfrågan kommer in i din ansökan hämtar sails.js alla parametrar som medföljde och gör dem tillgängliga för dig som params
på begäran.
Egenskaper i ruttmålobjektet kommer att överföras till rutthanteraren i req.options-objektet. Följande är reserverade egenskaper som kan påverka väghanterarens beteende:
Fast egendom | Tillämpliga måltyper | Data typ | detaljer |
---|---|---|---|
skipAssets | Allt | Boolean | Ställ in på true om du inte vill att rutten ska matcha URL: er med prickar i dem (t.ex. myImage.jpg). Detta kommer att hålla dina rutter med jokerteckennotering från matchande webbadresser för statiska tillgångar. Användbart när du skapar URL-sniglar. |
skipRegex | Allt | Regexp | Om att hoppa över varje URL som innehåller en punkt är för tillåtet eller om du behöver en rutthanterare som ska hoppas över helt och hållet på olika kriterier kan du använda skipRegex . Det här alternativet låter dig ange ett reguljärt uttryck eller en rad reguljära uttryck för att matcha webbadressen för begäran mot; om någon av matcherna är framgångsrik, hoppas hanteraren över. Notera att till skillnad från syntax för att binda en hanterare med ett reguljärt uttryck, skipRegex räknar _actual RegExp objekt, inte strängar. |
lokalbefolkningen | controller, visa, plan, svar | Ordbok | Ställer in lokala lokalvariabler som ska skickas till valfri vy som visas under hanteringen av begäran. |
cors | Allt | Ordbok eller booleska eller sträng | Anger hur man ska hantera förfrågningar om denna rutt från ett annat ursprung. |
befolka | plan | Boolean | Anger om resultaten i en "find" eller "findOne" -plan ska ha tillhörande modellfält befolkade. Standardvärde som är inställt i config/blueprints.js . |
hoppa över , begränsa , sortera , var | plan | Ordbok | Ange kriterier för "hitta" -planen. |
Anpassade RESTful ruttdefinitioner
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',
};
Dirigera om
module.exports.routes = { '/foo': '/bar', 'GET /google': 'http://www.google.com' };
Definiera anpassad variabel för alla vyer
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; }; }, };
Hoppa över tillgångar (webbadresser med punkter i dem) från jokerteckenvägen
module.exports.routes = { 'GET /foo/*': { fn: function(req, res) { res.send("FOO!"); }, skipAssets: true }, };
Rutter med 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-sniglar
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 parametrar som skickas i URL: n kan sedan nås i motsvarande controlleråtgärder med req.param('year')
, req.param('month')
etc.
Till exempel utlöser en GET
begäran till /blog/2016/08/
BlogController.showMonthArchive
kontrolleråtgärden, med req.param('year')
med värdet 2016
och req.param('month')
med värdet 08
.