sails.js
Wytyczanie
Szukaj…
Uwagi
Trasy to reguły, które podpowiadają Sailsom, co mają robić w przypadku przychodzącego żądania.
Trasy są zdefiniowane w config/routes.js
. Kolejność tras jest znacząca, ponieważ trasy są dopasowywane od góry do dołu. Oznacza to, że jeśli masz określoną trasę, która może być również dopasowana do trasy z symbolem wieloznacznym, określoną trasę należy zdefiniować powyżej trasy z symbolem wieloznacznym.
Jeżeli wniosek dostanie się sails.js aplikacji łapie wszystkie parametry, które zostały z nim i udostępnia je dla ciebie jako params
w obiekcie żądania.
Właściwości obiektu docelowego trasy zostaną przekazane do procedury obsługi trasy w obiekcie req.options. Poniżej znajdują się zastrzeżone właściwości, które mogą wpływać na zachowanie procedury obsługi trasy:
własność | Obowiązujące typy docelowe | Typ danych | Detale |
---|---|---|---|
skipAssets | wszystko | Boolean | Ustaw na true jeśli nie chcesz, aby trasa dopasowywała adresy URL z kropkami w nich (np. MyImage.jpg). Dzięki temu trasy z notacją wieloznaczną nie będą pasowały do adresów URL zasobów statycznych. Przydatne przy tworzeniu ślimaków URL. |
skipRegex | wszystko | Regexp | Jeśli pomijanie każdego adresu URL zawierającego kropkę jest zbyt liberalne lub potrzebujesz procedury obsługi trasy, aby pominąć całkowicie na podstawie różnych kryteriów, możesz użyć skipRegex . Ta opcja pozwala określić wyrażenie regularne lub tablicę wyrażeń regularnych, które będą pasować do adresu URL żądania; jeśli dowolne dopasowanie zakończy się powodzeniem, program obsługi jest pomijany. Zauważ, że w przeciwieństwie do składni powiązania modułu obsługi z wyrażeniem regularnym, skipRegex oczekuje _aktywnych obiektów RegExp, a nie łańcuchów. |
miejscowi | kontroler, widok, plan, odpowiedź | Słownik | Ustawia domyślne zmienne lokalne, które mają być przekazywane do dowolnego widoku renderowanego podczas obsługi żądania. |
cors | wszystko | Słownik, wartość logiczna lub ciąg znaków | Określa sposób obsługi żądań dla tej trasy z innego źródła. |
zaludniać | projekt | Boolean | Wskazuje, czy wyniki w akcji „Znajdź” czy „znajdź” powinny mieć wypełnione pola modelu. Domyślnie wartość ustawiona w config/blueprints.js . |
pomiń , ogranicz , sortuj , gdzie | projekt | Słownik | Ustaw kryteria dla schematu „znajdź”. |
Niestandardowe definicje tras RESTful
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',
};
Przeadresować
module.exports.routes = { '/foo': '/bar', 'GET /google': 'http://www.google.com' };
Zdefiniuj zmienną niestandardową dla wszystkich widoków
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; }; }, };
Pomiń zasoby (adresy URL z kropkami) z trasy ze znakiem zastępczym
module.exports.routes = { 'GET /foo/*': { fn: function(req, res) { res.send("FOO!"); }, skipAssets: true }, };
Trasy z 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'
};
Ślimaki URL
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',
};
Parametry przekazane w adresie URL mogą być następnie dostępne w odpowiednich działaniach kontrolera za pomocą req.param('year')
, req.param('month')
itp.
Na przykład żądanie GET
do /blog/2016/08/
BlogController.showMonthArchive
/blog/2016/08/
wyzwala BlogController.showMonthArchive
kontrolera BlogController.showMonthArchive
, przy czym parametr req.param('year')
ma wartość 2016
a parametr req.param('month')
ma wartość 08
.