2013-08-13 1 views

risposta

11

L'aggiunta di middleware espresso in un'applicazione di vele è semplice.

creare una nuova politica.

policies 
    |_ 
    middleware.js/.coffee 

Aggiungere espresso MiddlewareYOUR_MIDDLE_WARE_FILE_NAME.js

Dentro il file middleware creiamo l'esportazione standard per node.js

module.exports = require('middle-ware')(OPTIONS_GO_HERE) // See middleware docs for configuration settings. 

Poi, una volta che hai creato il middleware è possibile applicare a tutti richieste o un singolo controllore seguendo la convalida Sails.js.

intera applicazionepolicies.js

module.exports.policies = { 
    '*':['middleware'] // node same name as file without extention 
} 

singola azione controllerpolicies.js

module.exports.policies = { 
    RabbitController:{ 
     feed:['middleware'] 
    } 
} 
+0

Non sono riuscito a farlo funzionare. Qualche consiglio per le vele 0.11 –

7

Prima di tutto, la risposta @SkyTecLabs' è il modo corretto per farlo. Ma volevo aggiungere che, in alcuni casi, potrebbe essere necessario controllare i file statici (immagini, javascript sul lato client, css, ecc.) (Ho appena dovuto occuparmene di recente). In questo caso, è possibile applicare il middleware genericamente a ogni percorso.

A partire dal Sails.js v0.9.3, si può fare:

// Put this in `config/express.js` 
module.exports.express = { 
    customMiddleware: function (app) { 
    app.use(require('../node_modules/sails/node_modules/express').basicAuth('balderdash', 'wickywocky')); 
    } 
}; 

Maggiori informazioni qui: https://gist.github.com/mikermcneil/6255295

Nel caso in cui si desidera il middleware per l'esecuzione prima di uno o più dei controller o azioni , sei sicuramente meglio servito usando l'approccio politico però!

+1

Questo ha funzionato per me. Non riuscivo a capire come usare la risposta accettata. In particolare, non ero sicuro delle opzioni da utilizzare per OPTIONS_GO_HERE e non sono riuscito a trovare dove è stato menzionato nella documentazione di sailsjs. – alarner

+0

Grazie per il suggerimento, ne saremo sicuri e lavoreremo! – mikermcneil