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.
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
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:
risorse
CartellaIl 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.
pubblico
CartellaContiene i file che sono pubblicamente disponibili, come le immagini che il sito utilizza, la favicon, ecc.
config
CartellaQuesta è 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 databaseapplication.js
- impostazioni generali per l'applicazioneassets.js
- impostazioni delle risorse per CSS e JSbootstrap.js
- codice che verrà eseguito prima dell'avvio dell'applocali
- cartella contenente traduzionipolicies.js
- configurazione di gestione dei diritti utenteroutes.js
- i percorsi per il sistemaviews.js
- visualizza le impostazioni correlateIl sails.js
la documentazione contiene informazioni dettagliate su ciascuna di queste cartelle.
visualizzazioni
CartellaLe 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.
api
CartellaQuesta cartella è composta da un buch di sottocartelle:
adattatori
cartella contiene gli adattatori utilizzati dall'applicazione incontrollori
la cartella contiene i controller dell'applicazioneModelli
cartellapolitiche
cartella sono le regole memorizzate per l'accesso utente dell'applicazioneServizi
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.
Le impostazioni generali sono memorizzate nel config / application.js
file. Le opzioni configurabili per l'applicazione sono:
nome dell'applicazione
)porta
)ambiente
)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.
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
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.
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.
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);
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:
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
.
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.
Questi sono definiti nel / attività / templates
e sono caricati come abbiamo visto sopra.
Abbiamo discusso su come configurare i percorsi nel capitolo Configurazione.
Ci sono diverse convenzioni che Sails segue quando vengono gestite le rotte:
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.:azione
non è specificato, Sails reindirizzerà all'azione appropriata. Fuori dagli schemi, vengono utilizzate le stesse convenzioni di RESTful route come in Backbone.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.