2015-01-18 4 views
11

Sto sviluppando un'applicazione di backend API REST utilizzando Sails.js 0.10 come framework. Questa applicazione sarà rigorosamente REST, l'autenticazione verrà implementata utilizzando token bearer oAuth. Tutte le risposte saranno in formato JSON.Disabilita alcune funzionalità integrate in Sails.js

Considerando questi requisiti specifici, non ho bisogno di alcune funzionalità incorporate in Sails.js e voglio rimuoverlo dalla mia applicazione (quindi funzionerà più velocemente senza codice estraneo).

Quindi, la mia domanda è: come disabilitare la seguente funzionalità integrata?

  • Blueprints
  • statici
  • Cookies
  • Sessions
  • Visualizzazioni
  • websocket
  • CSRF
  • i18n

Cos'altro può essere disabilitato che non è richiesto nel mio caso d'uso?

La documentazione è piuttosto frammentata su questa specifica domanda. Tutte le opzioni di configurazione sono descritte per ogni modulo, ma non ci sono informazioni su come un tale modulo possa essere disabilitato e/o rimosso dall'applicazione.

risposta

18

Hardcore! Dovrai disabilitare diversi hook e anche alcuni middleware. In primo luogo, nel file .sailsrc, impostare:

"hooks": { 
    "session": false, 
    "sockets": false, 
    "pubsub": false, 
    "views": false, 
    "csrf": false, 
    "i18n": false, 
    "blueprints": false 
} 

Poi, nel tuo config/https.js:

middleware: { 
    order: [ 
    'startRequestTimer', 
    // 'cookieParser', 
    // 'session', 
    'bodyParser', 
    'handleBodyParserError', 
    'compress', 
    'methodOverride', 
    'poweredBy', 
    '$custom', 
    'router', 
    // 'www', 
    // 'favicon', 
    '404', 
    '500'  
    ] 
} 

Questo dovrebbe ottenere il vostro cammino.

+0

Grazie @ sgress454! Ma il middleware non dovrebbe essere disabilitato automaticamente quando i ganci corrispondenti sono disabilitati? C'è qualcos'altro che posso disabilitare per rendere il mio setup ancora più leggero? Dove posso trovare l'elenco completo e la secrizione dei ganci e dei middleware incorporati? C'è una documentazione per questo? Grazie ancora! –

+0

Il middleware Express e i ganci Sails sono mantenuti separati separatamente. I primi forniscono funzionalità extra di basso livello, principalmente aggiungendo agli oggetti 'req' e' res' o al router Express. Quest'ultimo estende la funzionalità di Sails rendendo le cose più configurabili o aggiungendo nuove funzionalità. Il middleware è elencato nella documentazione di Sails [qui] (http://sailsjs.org/#/documentation/concepts/Middleware); al momento non esiste un buon documento per gli hook predefiniti, sebbene la maggior parte delle funzioni che rappresentano abbiano le proprie sezioni doc. – sgress454

+0

Vedo, grazie per la spiegazione. È anche possibile disabilitare il middleware statico: http://sailsjs.org/#/documentation/concepts/Assets?q=static-middleware e Blueprints? Sto scrivendo un articolo durante la configurazione dell'applicazione. Penso che la mia esperienza con questo sarà un buon contributo alla community =) –