Поиск…


замечания

Маршруты - это правила, которые указывают 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 .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow