Introduksjon til Sails.js

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.


Installasjon

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

Lag et nytt prosjekt

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:


De eiendeler Mappe

De 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.

De offentlig Mappe

Inneholder filene som er offentlig tilgjengelige, for eksempel bilder som nettstedet ditt bruker, favicon, etc..

De config Mappe

Dette 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 databaseadaptere
  • application.js - generelle innstillinger for programmet
  • assets.js - aktivitetsinnstillinger for CSS og JS
  • bootstrap.js - kode som vil bli spilt før appen starter
  • steder - mappe som inneholder oversettelser
  • policies.js - konfigurasjon av brukerrettighetsadministrasjon
  • routes.js - rutene for systemet
  • views.js - vis relaterte innstillinger

De sails.js dokumentasjonen inneholder detaljert informasjon om hver av disse mappene.

De visninger Mappe

Programmets 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.

De api Mappe

Denne mappen består av en rekke undermapper:

  • de adaptere mappen inneholder adaptere som brukes av programmet til
    håndtere databaseforbindelser
  • de kontrollere mappen inneholder applikasjonsstyrerne
  • Programmets modeller lagres i modeller mappe
  • i politikk mappen er lagret regler for tilgang til applikasjonsbruker
  • Api-tjenestene som implementeres av appen, lagres i tjenester
    mappe

Konfigurer programmet

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

Generelle innstillinger lagres i config / application.js fil. De konfigurerbare alternativene for programmet er:

  • Programnavn (APPNAME)
  • porten som appen vil høre på (havn)
  • applikasjonsmiljøet; kan enten være utvikling eller produksjon (miljø)
  • nivået for loggeren, som kan brukes til å kontrollere størrelsen på loggfilen (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.

ruter

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

Visninger

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

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.


Controllers

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

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:

  • server-sidevisninger
  • se delvise
  • layout visninger
  • klient-sidevisninger

Server-sidevisninger

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.

Oppsettvisningen

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.

Klient-side maler

Disse er definert i / eiendeler / maler og er lastet som vi så over.


ruter

Vi diskuterte hvordan du konfigurerer ruter i konfigurasjons kapittelet.

Det er flere konvensjoner som seil følger når ruter håndteres:

  • hvis nettadressen ikke er spesifisert i 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.
  • hvis :handling er ikke spesifisert, vil seilene omdirigere til riktig handling. Ut av boksen brukes de samme RESTful-rutekonvensjonene som i Backbone.
  • Hvis den forespurte kontrolleren / handlingen ikke eksisterer, vil Sails oppføre seg slik:
    • Hvis en visning eksisterer, vil seil gjengi den visningen
    • Hvis en visning ikke eksisterer, men en modell eksisterer, vil Sails returnere JSON-skjemaet til den modellen
    • Hvis ingen av de ovennevnte eksisterer, vil Sails svare med en 404

Konklusjon

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.