Introduzione a Sails.js

Sails è un framework Javascript progettato per assomigliare all'architettura MVC da framework come Ruby on Rails. Semplifica il processo di creazione delle app Node.js, in particolare le API, le app a singola pagina e le funzionalità in tempo reale, come la chat.


Installazione

Per installare Sails, è abbastanza semplice. I prerequisiti sono di avere Node.js installato e anche npm, che viene fornito con Node. Quindi si deve emettere il seguente comando nel terminale:

sudo npm installa sails -g

Crea un nuovo progetto

Per creare un nuovo progetto Sails, viene utilizzato il seguente comando:

vele nuovo myNewProject

Sails genererà una nuova cartella chiamata myNewProject e aggiungere tutti i file necessari per creare un'applicazione di base. Per vedere cosa è stato generato, entra nel gioco myNewProject cartella ed eseguire il server Sails emettendo il seguente comando nel terminale:

vele ascensore

La porta predefinita di Sails è 1337, quindi se visiti http: // localhost: 1337 dovresti ottenere il valore predefinito di Sails index.html pagina.


Ora, diamo un'occhiata a ciò che le vele hanno generato per noi. Nel nostro myNewProject cartella sono stati creati i seguenti file e sottocartelle:


Il risorse Cartella

Il risorse cartella contiene sottodirectory per i file Javascript e CSS che dovrebbero essere caricati durante il runtime. Questo è il posto migliore per memorizzare le librerie ausiliarie utilizzate dall'applicazione.

Il pubblico Cartella

Contiene i file che sono pubblicamente disponibili, come le immagini che il sito utilizza, la favicon, ecc.

Il config Cartella

Questa è una delle cartelle importanti. Sails è progettato per essere flessibile. Presuppone alcune convenzioni standard, ma consente anche allo sviluppatore di cambiare il modo in cui Sails configura l'app creata per soddisfare le esigenze del progetto. Di seguito è riportato un elenco di file di configurazione presenti in config cartella:

  • adapters.js - utilizzato per configurare gli adattatori del database
  • application.js - impostazioni generali per l'applicazione
  • assets.js - impostazioni delle risorse per CSS e JS
  • bootstrap.js - codice che verrà eseguito prima dell'avvio dell'app
  • locali - cartella contenente traduzioni
  • policies.js - configurazione di gestione dei diritti utente
  • routes.js - i percorsi per il sistema
  • views.js - visualizza le impostazioni correlate

Il sails.js la documentazione contiene informazioni dettagliate su ciascuna di queste cartelle.

Il visualizzazioni Cartella

Le viste dell'applicazione sono memorizzate in questa cartella. Guardando i suoi contenuti, notiamo che le viste sono generate di default come EJS (JavaScript incorporato). Anche il visualizzazioni la cartella contiene viste per la gestione degli errori (404 e 500) e anche il file di layout (layout.ejs) e le viste per il controller domestico, che sono state generate da Sails.

Il api Cartella

Questa cartella è composta da un buch di sottocartelle:

  • il adattatori cartella contiene gli adattatori utilizzati dall'applicazione in
    gestire le connessioni del database
  • il controllori la cartella contiene i controller dell'applicazione
  • i modelli dell'applicazione sono memorizzati nel Modelli cartella
  • nel politiche cartella sono le regole memorizzate per l'accesso utente dell'applicazione
  • i servizi API implementati dall'app sono memorizzati nel Servizi
    cartella

Configura l'applicazione

Finora abbiamo creato la nostra applicazione e dato un'occhiata a ciò che è stato generato di default, ora è il momento di configurare l'applicazione per adattarla alle nostre esigenze.

impostazioni generali

Le impostazioni generali sono memorizzate nel config / application.js file. Le opzioni configurabili per l'applicazione sono:

  • Nome dell'applicazione (nome dell'applicazione)
  • la porta su cui l'app ascolterà (porta)
  • l'ambiente applicativo; può essere sviluppo o produzione (ambiente)
  • il livello per il logger, utilizzabile per controllare la dimensione del file di log (ceppo)

Si noti che impostando l'app ambiente alla produzione, rende Sails un pacchetto e minimizza CSS e JS, il che può rendere più difficile il debug.

Itinerari

I percorsi di applicazione sono definiti nel config / routes.js file. Come ci si aspetterebbe, questo file sarà quello con cui si lavorerà più spesso mentre si aggiungono nuovi controller all'applicazione.

I percorsi vengono esportati come segue, nel file di configurazione:

module.exports.routes = // indirizza alla pagina indice del controller domestico '/': controller: 'home', // instradamento verso il controller auth, azione di login '/ login': controller: 'auth' , azione: 'login', // indirizza al controller del blog, aggiungi azioni per aggiungere un post a un blog // nota che usiamo anche il metodo / verbo HTTP prima del percorso 'post / blog / add': controller: 'blog', azione: 'add_post', // percorso per ottenere il primo post sul blog. L'azione find restituirà // la riga del database contenente l'informazione desiderata "/ blog /: item": controller: blog, action: find

Visualizzazioni

Per quanto riguarda le viste, le opzioni configurabili sono il motore di template da utilizzare e se un layout deve o meno essere utilizzato, per le viste.


Modelli

I modelli sono una rappresentazione dei dati dell'applicazione memorizzati in un database. I modelli sono definiti utilizzando attributi e associazioni. Ad esempio, la definizione di a Persona il modello potrebbe assomigliare a questo:

// Person.js var Person = name: 'STRING', age: 'INTEGER', birthDate: 'DATE', phoneNumber: 'STRING', emailAddress: 'STRING'; esportazioni = Persona;

La comunicazione con il database sottostante avviene tramite adattatori. Gli adattatori sono definiti in API / adattatori e sono configurati nel adapters.js file. Al momento della stesura di questo articolo, Sails viene fornito con tre adattatori: memoria, disco e mysql ma è possibile scrivere il proprio adattatore (vedere la documentazione per i dettagli).

Una volta definito un modello, è possibile operare su di esso creando record, trovando record, aggiornando e distruggendo record.


Controller

I controllori sono inseriti API / controller. Un controller viene creato utilizzando il seguente comando:

le vele generano il commento del controllore

Questo comando genererà a CommentController oggetto. Le azioni sono definite all'interno di questo oggetto. Le azioni possono anche essere generate quando si rilascia il generare controller comando:

le vele generano il commento del controllore creano il tag di distruzione come

Questo creerà a Commento controller con azioni per creare, distruggere, etichetta e piace.

Le azioni ricevono come parametri la richiesta e gli oggetti risposta, che possono essere utilizzati per ottenere i parametri dell'URI (l'oggetto richiesta) o l'output nella vista (utilizzando l'oggetto risposta).

Per comunicare con il modello, viene utilizzata la callback dell'azione appropriata. Ad esempio, nel caso di interrogare un database con trova, il seguente modello è usato per manipolare il modello:

Blog.find (id) .done (err, blog) // blog è il record del database con l'id specificato console.log (blog.content); 

Visualizzazioni

Le viste sono utilizzate per gestire l'interfaccia utente dell'applicazione. Per impostazione predefinita, le viste vengono gestite tramite EJS, ma è possibile utilizzare qualsiasi altra libreria di modelli. Come configurare le viste è stato discusso precedentemente nel capitolo Configurazione.

Le viste sono definite nel /visualizzazioni directory e i modelli sono definiti nel / assests / templates cartella.

Esistono principalmente quattro tipi di visualizzazioni:

  • viste lato server
  • visualizza i partial
  • viste del layout
  • viste lato client

Visualizzazioni lato server

Il loro compito è quello di visualizzare i dati quando una richiesta viene richiesta dal cliente. Di solito il metodo res.view corrisponde a un cliente con la vista appropriata. Ma se non esiste alcun controller o azione per una richiesta, Sails servirà la vista nel seguente modo: /views/:controller/:action.ejs.

La vista Layout

Il layout può essere trovato in /views/layout.ejs. Viene utilizzato per caricare gli asset dell'applicazione come fogli di stile o librerie JavaScript.

Dai un'occhiata al file specificato:

   <%- title %>    <%- assets.css() %> <%- assets.js() %>   <%- body %>  <%- assets.templateLibrary() %>  

Le linee assets.css () e assets.js () caricare le risorse CSS e JS della nostra applicazione e il assets.templateLibrary carica i modelli client.

Modelli lato client

Questi sono definiti nel / attività / templates e sono caricati come abbiamo visto sopra.


Itinerari

Abbiamo discusso su come configurare i percorsi nel capitolo Configurazione.

Ci sono diverse convenzioni che Sails segue quando vengono gestite le rotte:

  • se l'URL non è specificato nel config / routes.js è la rotta predefinita per un URL /: Regolatore /: action /: id con i significati ovvi per controller e azione e id essendo il parametro di richiesta derivato dall'URL.
  • Se :azione non è specificato, Sails reindirizzerà all'azione appropriata. Fuori dagli schemi, vengono utilizzate le stesse convenzioni di RESTful route come in Backbone.
  • se il controller / azione richiesto non esiste, Sails si comporterà in questo modo:
    • se esiste una vista, Sails renderà quella vista
    • se una vista non esiste, ma esiste un modello, Sails restituirà la forma JSON di quel modello
    • se nessuno dei precedenti esiste, Sails risponderà con un 404

Conclusione

Ora ho appena scalfito la superficie con quello che Sails può fare, ma restate sintonizzati, mentre seguirò questo con una presentazione approfondita che mostra come creare un'applicazione, usando le vele.

Ricorda inoltre che Sails è attualmente in fase di sviluppo e in continua evoluzione. Quindi assicurati di controllare la documentazione per vedere cosa c'è di nuovo.