sails.js
маршрутизация
Поиск…
замечания
Маршруты - это правила, которые указывают Sails, что делать, когда сталкивается с входящим запросом.
Маршруты определяются в config/routes.js
. Порядок маршрутов значителен, так как маршруты сопоставляются сверху вниз. Это означает, что если у вас есть определенный маршрут, который также может быть сопоставлен с помощью шаблона подстановочных знаков, конкретный маршрут должен быть определен выше маршрута подстановочного знака.
Когда запрос входит в ваше приложение, sails.js захватывает все параметры, которые пришли с ним, и делает их доступными для вас в качестве params
объекта запроса.
Свойства в целевом объекте маршрута будут переданы обработчику маршрута в объекте req.options. Ниже перечислены зарезервированные свойства, которые могут повлиять на поведение обработчика маршрута:
Имущество | Применимые типы целей | Тип данных | подробности |
---|---|---|---|
skipAssets | все | логический | Установите значение true если вы не хотите, чтобы маршрут соответствовал URL-адресам с точками в них (например, myImage.jpg). Это приведет к тому, что ваши маршруты будут обозначены символами шаблонов статических активов. Полезно при создании пулов URL. |
skipRegex | все | Regexp | Если пропускать каждый URL, содержащий точку, является слишком разрешительным, или вам нужно, чтобы обработчик маршрута был пропущен на основе разных критериев целиком, вы можете использовать skipRegex . Эта опция позволяет вам указать регулярное выражение или массив регулярных выражений для соответствия URL-адресу запроса; если какое-либо из совпадений выполнено успешно, обработчик пропускается. Обратите внимание: в отличие от синтаксиса привязки обработчика с регулярным выражением, skipRegex ожидает _actual RegExp-объекты, а не строки. |
местные жители | контроллер, представление, план, ответ | толковый словарь | Устанавливает локальные переменные по умолчанию для передачи в любое представление, которое отображается при обработке запроса. |
CORS | все | Словарь или булевская или строка | Указывает, как обрабатывать запросы для этого маршрута из другого источника. |
населять | план | логический | Указывает, должны ли результаты в проекте «find» или «findOne» иметь связанные поля модели. По умолчанию устанавливается значение, установленное в config/blueprints.js . |
пропустить , ограничить , сортировать , где | план | толковый словарь | Установите критерии для схемы поиска. |
Пользовательские определения маршрута 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',
};
переадресовывать
module.exports.routes = { '/foo': '/bar', 'GET /google': 'http://www.google.com' };
Определение пользовательской переменной для всех представлений
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; }; }, };
Пропустить активы (URL-адреса с точками в них) по шаблону
module.exports.routes = { 'GET /foo/*': { fn: function(req, res) { res.send("FOO!"); }, skipAssets: true }, };
Маршруты с 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-адреса
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',
};
Затем параметры, переданные в URL-адресе, могут быть доступны в соответствующих действиях контроллера с использованием req.param('year')
, req.param('month')
и т. Д.
Например, GET
запрос /blog/2016/08/
запускает BlogController.showMonthArchive
действие контроллера с req.param('year')
, имеющее значение 2016
и req.param('month')
, имеющий значение 08
.