Seil er et Javascript-rammeverk som er utformet for å ligne MVC-arkitekturen fra rammer som Ruby on Rails. Det gjør prosessen med å bygge Node.js apps enklere, spesielt APIer, enkelsidetapper og realtidsfunksjoner, som for eksempel chat.
For å installere seil, er det ganske enkelt. Forutsetningene er å ha Node.js installert og også npm, som følger med Node. Deretter må man utstede følgende kommando i terminalen:
sudo npm installere seil-g
For å opprette et nytt seilprosjekt, brukes følgende kommando:
seiler nytt myNewProject
Seil vil generere en ny mappe som heter myNewProject
og legg til alle nødvendige filer for å ha en grunnleggende applikasjon bygget. For å se hva som ble generert, kom bare inn i myNewProject
mappe og kjøre Seil-serveren ved å utstede følgende kommando i terminalen:
seil løft
Seilens standardport er 1337, så hvis du besøker http: // localhost: 1337
du bør få seilene som standard index.html
side.
Nå, la oss se på hvilke seiler som er generert for oss. I vår myNewProject
mappe følgende filer og undermapper ble opprettet:
eiendeler
MappeDe eiendeler
mappen inneholder underkataloger for Javascript og CSS-filer som skal lastes i løpet av kjøretiden. Dette er det beste stedet å lagre hjelpebiblioteker som brukes av søknaden din.
offentlig
MappeInneholder filene som er offentlig tilgjengelige, for eksempel bilder som nettstedet ditt bruker, favicon, etc..
config
MappeDette er en av de viktige mappene. Seil er designet for å være fleksibel. Det forutsetter noen standardkonvensjoner, men det tillater også utvikleren å endre måten Sails konfigurerer den opprettede appen for å passe til prosjektets behov. Følgende er en liste over konfigurasjonsfiler som er tilstede i config
mappe:
adapters.js
- brukes til å konfigurere databaseadaptereapplication.js
- generelle innstillinger for programmetassets.js
- aktivitetsinnstillinger for CSS og JSbootstrap.js
- kode som vil bli spilt før appen startersteder
- mappe som inneholder oversettelserpolicies.js
- konfigurasjon av brukerrettighetsadministrasjonroutes.js
- rutene for systemetviews.js
- vis relaterte innstillingerDe sails.js
dokumentasjonen inneholder detaljert informasjon om hver av disse mappene.
visninger
MappeProgrammets visninger lagres i denne mappen. Når vi ser på innholdet, legger vi merke til at visningene genereres som standard som EJS (innebygd JavaScript). Også, den visninger
mappen inneholder visninger for feilhåndtering (404 og 500) og også layoutfilen (layout.ejs
) og visningene til hjemmekontrolleren, som ble generert av Sails.
api
MappeDenne mappen består av en rekke undermapper:
adaptere
mappen inneholder adaptere som brukes av programmet tilkontrollere
mappen inneholder applikasjonsstyrernemodeller
mappepolitikk
mappen er lagret regler for tilgang til applikasjonsbrukertjenester
Så langt har vi opprettet vår søknad og tatt en titt på det som ble generert som standard, nå er det på tide å konfigurere søknaden slik at den passer til våre behov.
Generelle innstillinger lagres i config / application.js
fil. De konfigurerbare alternativene for programmet er:
APPNAME
)havn
)miljø
)Logg
)Legg merke til at ved å sette appen miljø
til produksjon, gjør Sails bundle og redusere CSS og JS, noe som kan gjøre det vanskeligere å feilsøke.
Programruter er definert i config / routes.js
fil. Som du forventer, er denne filen den som du oftest vil jobbe med når du legger til nye kontroller i programmet.
Ruten eksporteres som følger, i konfigurasjonsfilen:
module.exports.routes = // rute til indekssiden til hjemmekontrolleren '/': controller: 'home', // rute til auth-kontrolleren, innloggingshandling '/ login': controller: 'auth' , handling: 'logg inn', // rute til bloggkontroller, legg til handling for å legge til et innlegg i en blogg // merk at vi også bruker HTTP-metoden / verbet før banen 'post / blog / add': controller: 'blogg', handling: 'add_post', // rute for å få det første blogginnlegget. Funnet handlingen kommer tilbake // databasen rad som inneholder ønsket informasjon '/ blog /: item': controller: blogg, handling: finne
Når det gjelder visninger, er de konfigurerbare alternativene malmotoren som skal brukes, og hvis en layout skal eller ikke skal brukes, for visninger.
Modeller er en representasjon av applikasjonsdata lagret i en database. Modeller defineres ved å bruke attributter og foreninger. For eksempel definisjonen av a Person
modellen kan se slik ut:
// Person.js var Person = navn: 'STRING', alder: 'INTEGER', fødselsdato: 'DATE', telefonnummer: 'STRING', emailAddress: 'STRING'; eksport = Person;
Kommunikasjonen med den underliggende databasen gjøres via adaptere. Adaptere er definert i api / adaptere
og er konfigurert i adapters.js
fil. I øyeblikket du skriver denne artikkelen, kommer Sails med tre adaptere: minne, disk og mysql, men du kan skrive din egen adapter (se dokumentasjonen for detaljer).
Når du har en modell definert, kan du operere på det ved å lage poster, finne poster, oppdatere og ødelegge poster.
Kontrollører er plassert i api / kontrollører
. En kontroller er opprettet ved hjelp av følgende kommando:
seil generere kontrolleren kommentar
Denne kommandoen vil generere en CommentController
gjenstand. Handlinger defineres i dette objektet. Handlinger kan også genereres når du utsteder generere kontrolleren
kommando:
seil generere kontrolleren kommentar skape ødelegge tag som
Dette vil skape en Kommentar
controller med handlinger for skape
, ødelegge
, stikkord
og som
.
Handlinger mottar som parametre forespørselen og svarobjektene, som kan brukes til å få parametere til URI (forespørselsobjektet) eller utdata i visningen (ved hjelp av responsobjektet).
For å kommunisere med modellen, tilbakekallingen av den appopriate handlingen brukes. For eksempel, ved spørring av en database med finne
, Følgende mønster brukes til å manipulere modellen:
Blog.find (id) .done (feil, blogg) // blog er databaseposten med den angitte id console.log (blog.content);
Visninger brukes til å håndtere brukergrensesnittet i søknaden. Som standard håndteres visninger ved hjelp av EJS, men et annet templerende bibliotek kan brukes. Hvordan du konfigurerer visninger, ble diskutert tidligere i kapitlet Konfigurasjon.
Visninger er definert i / visninger
katalog og malene er definert i / assests / maler
mappe.
Det er hovedsakelig fire typer visninger:
Deres jobb er å vise data når en visning blir bedt om av klienten. Vanligvis metoden res.view
tilsvarer en klient med riktig visning. Men hvis ingen kontroller eller handling eksisterer for en forespørsel, vil Sails vise visningen på følgende måte: /views/:controller/:action.ejs
.
Oppsettet finner du i /views/layout.ejs
. Den brukes til å laste inn programaktiva som stilark eller JavaScript-biblioteker.
Ta en titt på den angitte filen:
<%- title %> <%- assets.css() %> <%- assets.js() %> <%- body %> <%- assets.templateLibrary() %>
Linjene assets.css ()
og assets.js ()
last CSS og JS eiendeler av vår søknad og assets.templateLibrary
laster klientmaler.
Disse er definert i / eiendeler / maler
og er lastet som vi så over.
Vi diskuterte hvordan du konfigurerer ruter i konfigurasjons kapittelet.
Det er flere konvensjoner som seil følger når ruter håndteres:
config / routes.js
Standardruten for en URL er /: Controller /: action /: id
med de åpenbare betydninger for kontrolleren og handlingen og id
å være forespørselsparameteren avledet fra nettadressen.:handling
er ikke spesifisert, vil seilene omdirigere til riktig handling. Ut av boksen brukes de samme RESTful-rutekonvensjonene som i Backbone.Nå har jeg knapt skrapt overflaten med hva Sails kan gjøre, men hold deg innstilt, da jeg vil følge opp med en grundig presentasjon som viser deg hvordan du bygger et søknad, ved hjelp av Sails.
Vær også oppmerksom på at seil er under utvikling og stadig forandres. Så sørg for å sjekke ut dokumentasjonen for å se hva som er nytt.