sails.js
Routing
Ricerca…
Osservazioni
I percorsi sono regole che indicano a Sails cosa fare di fronte a una richiesta in arrivo.
Le rotte sono definite in config/routes.js
. L'ordine dei percorsi è significativo, poiché i percorsi sono abbinati dall'alto verso il basso. Ciò significa che se si dispone di una rotta specifica che potrebbe anche essere abbinata a un percorso con caratteri jolly, il percorso specifico deve essere definito sopra il percorso con caratteri jolly.
Quando una richiesta entra nella tua applicazione, sails.js acquisisce tutti i parametri forniti e li rende disponibili come params
sull'oggetto richiesta.
Le proprietà nell'oggetto di destinazione del percorso verranno passate al gestore di route nell'oggetto req.options. Le seguenti sono proprietà riservate che possono influire sul comportamento del gestore di instradamento:
Proprietà | Tipi di target applicabili | Tipo di dati | Dettagli |
---|---|---|---|
skipAssets | tutti | booleano | Impostato su true se non si desidera che la route corrisponda agli URL con punti all'interno (es. MyImage.jpg). Ciò manterrà le rotte con la notazione jolly dagli URL corrispondenti delle risorse statiche. Utile durante la creazione di slug URL. |
skipRegex | tutti | regexp | Se saltare tutti gli URL contenenti un punto è troppo permissivo, o è necessario saltare il gestore di una rotta in base a diversi criteri, è possibile utilizzare skipRegex . Questa opzione consente di specificare un'espressione regolare o una matrice di espressioni regolari per abbinare l'URL della richiesta a; se una delle corrispondenze ha esito positivo, il gestore viene saltato. Si noti che, a differenza della sintassi per il binding di un gestore con un'espressione regolare, skipRegex aspetta _errual oggetti RegExp, non stringhe. |
gente del posto | controller, vista, blueprint, risposta | Dizionario | Imposta le variabili locali predefinite da passare a qualsiasi vista resa durante la gestione della richiesta. |
cors | tutti | Dizionario o booleano o stringa | Specifica come gestire le richieste per questa rotta da un'origine diversa. |
popolare | planimetria | booleano | Indica se i risultati di un'azione "trova" o "findOne" devono avere i campi del modello associati compilati. Il valore predefinito è impostato in config/blueprints.js . |
saltare , limitare , ordinare , dove | planimetria | Dizionario | Imposta i criteri per il progetto "trova". |
Definizioni di route RESTful personalizzate
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',
};
Reindirizzare
module.exports.routes = { '/foo': '/bar', 'GET /google': 'http://www.google.com' };
Definisci variabile personalizzata per tutte le viste
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; }; }, };
Salta le risorse (URL con punti in esse) dal percorso con caratteri jolly
module.exports.routes = { 'GET /foo/*': { fn: function(req, res) { res.send("FOO!"); }, skipAssets: true }, };
Percorsi 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'
};
Lumache di 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',
};
È quindi possibile accedere ai parametri trasmessi nell'URL nelle corrispondenti azioni del controller utilizzando req.param('year')
, req.param('month')
ecc.
Ad esempio, una richiesta GET
a /blog/2016/08/
BlogController.showMonthArchive
/blog/2016/08/
attiva l'azione del controller BlogController.showMonthArchive
, con req.param('year')
con valore 2016
e req.param('month')
con valore 08
.