sails.js
Enrutamiento
Buscar..
Observaciones
Las rutas son reglas que le dicen a Sails qué hacer cuando se enfrentan con una solicitud entrante.
Las rutas se definen en config/routes.js
. El orden de las rutas es significativo, ya que las rutas se comparan de arriba hacia abajo. Esto significa que si tiene una ruta específica que también puede ser comparada con una ruta comodín, la ruta específica debe definirse sobre la ruta comodín.
Cuando una solicitud ingresa a su aplicación, sails.js toma todos los parámetros que vienen con ella y los pone a su disposición como params
en el objeto de solicitud.
Las propiedades en el objeto de destino de ruta se pasarán al controlador de ruta en el objeto req.options. Las siguientes son propiedades reservadas que pueden afectar el comportamiento del controlador de ruta:
Propiedad | Tipos de objetivo aplicables | Tipo de datos | Detalles |
---|---|---|---|
skipAssets | todos | Booleano | Establézcalo en true si no desea que la ruta coincida con las direcciones URL con puntos (por ejemplo, myImage.jpg). Esto evitará que sus rutas con notación de comodines coincidan con las URL de los activos estáticos. Útil al crear slugs de URL. |
skipRegex | todos | Regexp | Si omitir cada URL que contiene un punto es demasiado permisivo, o si necesita que se skipRegex un controlador de ruta en función de criterios diferentes por completo, puede usar skipRegex . Esta opción le permite especificar una expresión regular o una matriz de expresiones regulares para hacer coincidir la URL de la solicitud; Si cualquiera de las coincidencias tiene éxito, el controlador se omite. Tenga en cuenta que, a diferencia de la sintaxis para vincular un controlador con una expresión regular, skipRegex espera objetos RegExp _actuales, no cadenas. |
locales | controlador, vista, plano, respuesta | Diccionario | Establece las variables locales predeterminadas para pasar a cualquier vista que se represente mientras se maneja la solicitud. |
cors | todos | Diccionario o Boolean o String | Especifica cómo manejar las solicitudes de esta ruta desde un origen diferente. |
poblar | cianotipo | Booleano | Indica si los resultados de una acción de modelo "buscar" o "buscar un" deben tener campos de modelo asociados rellenados. De manera predeterminada, el valor establecido en config/blueprints.js . |
saltar , limitar , ordenar , donde | cianotipo | Diccionario | Establecer criterios para el modelo de "encontrar". |
Definiciones de ruta RESTful personalizadas
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',
};
Redirigir
module.exports.routes = { '/foo': '/bar', 'GET /google': 'http://www.google.com' };
Definir variable personalizada para todas las vistas.
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; }; }, };
Omitir activos (urls con puntos en ellos) de la ruta comodín
module.exports.routes = { 'GET /foo/*': { fn: function(req, res) { res.send("FOO!"); }, skipAssets: true }, };
Rutas con 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'
};
Babosas 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',
};
Se puede acceder a los parámetros pasados en la URL en las acciones del controlador correspondiente utilizando req.param('year')
, req.param('month')
etc.
Por ejemplo, una solicitud GET
para /blog/2016/08/
BlogController.showMonthArchive
/blog/2016/08/
desencadena la acción del controlador BlogController.showMonthArchive
, con req.param('year')
tiene el valor 2016
y req.param('month')
con el valor 08
.