Introduktion till Sails.js

Segel är ett Javascript-ramverk som är utformat för att likna MVC-arkitekturen från ramar som Ruby on Rails. Det gör processen att bygga Node.js-appar lättare, särskilt API, enkelsidiga appar och realtidsfunktioner, som chatt.


Installation

För att installera segel är det ganska enkelt. Förutsättningarna är att ha Node.js installerat och även npm, som levereras med Node. Då måste man utfärda följande kommando i terminalen:

sudo npm installera segel -g

Skapa ett nytt projekt

För att skapa ett nytt segelprojekt används följande kommando:

seglar nya myNewProject

Seglarna kommer att generera en ny mapp som heter myNewProject och lägg till alla nödvändiga filer för att ha en grundläggande applikation byggd. För att se vad som genererades, kom precis in i myNewProject mapp och kör Sails-servern genom att utfärda följande kommando i terminalen:

segellyft

Segelns standardport är 1337, så om du besöker http: // localhost: 1337 du borde få seglen som standard index.html sida.


Låt oss nu titta på vilka segel som genereras för oss. I vår myNewProject mapp följande filer och undermappar skapades:


De tillgångar Mapp

De tillgångar mappen innehåller underkataloger för Javascript och CSS-filer som ska laddas under körning. Det här är det bästa stället att lagra hjälpbibliotek som används av din ansökan.

De offentlig Mapp

Innehåller de filer som är tillgängliga för allmänheten, till exempel bilder som din webbplats använder, favicon, etc..

De config Mapp

Detta är en av de viktiga mapparna. Segel är utformad för att vara flexibel. Det förutsätter vissa standardkonventioner, men det gör det också möjligt för utvecklaren att ändra hur Sails konfigurerar den skapade appen för att passa projektets behov. Nedan följer en lista över konfigurationsfiler som finns i config mapp:

  • adapters.js - brukade konfigurera databasadapteren
  • application.js - allmänna inställningar för programmet
  • assets.js - tillgångsinställningar för CSS och JS
  • bootstrap.js - kod som körs innan applanseringen
  • locales - mapp som innehåller översättningar
  • policies.js - konfiguration av användarrättighetshantering
  • routes.js - vägarna för systemet
  • views.js - visa relaterade inställningar

De sails.js dokumentationen innehåller detaljerad information om vart och ett av dessa mappar.

De visningar Mapp

Programmets synpunkter lagras i den här mappen. När vi tittar på innehållet märker vi att vyerna genereras som standard som EJS (inbäddad JavaScript). Även visningar mappen innehåller synpunkter på felhantering (404 och 500) och även layoutfilen (layout.ejs) och synpunkterna för hemkontrollanten, som genererades av seglarna.

De api Mapp

Den här mappen är sammansatt av en del submappar:

  • de adaptrar mappen innehåller de adaptrar som används av programmet till
    hantera databasanslutningar
  • de controllers mappen innehåller programkontrollerna
  • Applikationsmodellerna lagras i modeller mapp
  • i politik mappen lagras regler för användaråtkomst till program
  • Api-tjänsterna som implementeras av appen lagras i tjänster
    mapp

Konfigurera applikationen

Hittills har vi skapat vår applikation och tittat på det som genererades som standard, nu är det dags att konfigurera applikationen så att den passar våra behov.

Allmänna Inställningar

Allmänna inställningar lagras i config / application.js fil. De konfigurerbara alternativen för programmet är:

  • applikationsnamn (app-namn)
  • porten som appen lyssnar på (hamn)
  • applikationsmiljön; kan vara antingen utveckling eller produktion (miljö)
  • nivån för loggen, användbar för att styra loggfilens storlek (logga)

Observera att genom att ställa in appen miljö till produktion, gör segelbunt och minifiera CSS och JS, vilket kan göra det svårare att felsöka.

rutter

Ansökningsvägar definieras i config / routes.js fil. Som du förväntar dig kommer den här filen att vara den som du oftast arbetar med när du lägger till nya kontroller till programmet.

Rutorna exporteras enligt följande i konfigurationsfilen:

module.exports.routes = // rutt till indexhemsida för hemkontrollen '/': controller: 'home', // rutt till auth-controller, inloggningsaktivitet '/ inloggning': controller: 'auth' , åtgärd: 'inloggning', // väg till bloggkontrollen, lägg till åtgärd för att lägga till ett inlägg i en blogg // notera att vi också använder HTTP-metoden / verbet före sökvägen 'post / blog / add': controller: 'blogg', åtgärd: 'add_post', // rutt för att få det första blogginlägget. Sökningen kommer att returnera // databasrad som innehåller önskad information '/ blog /: item': controller: blog, action: find

Visningar

När det gäller vyer är de konfigurerbara alternativen den mallmotor som ska användas och om en layout ska användas eller inte, för visningar.


modeller

Modeller är en representation av applikationsdata lagrade i en databas. Modeller definieras genom att använda attribut och föreningar. Till exempel definitionen av a Person modellen kan se ut så här:

// Person.js var Person = namn: 'STRING', ålder: 'INTEGER', birthDate: 'DATE', phoneNumber: 'STRING', emailAddress: 'STRING'; export = person;

Kommunikationen med den underliggande databasen görs via adaptrar. Adaptrar definieras i api / adapter och är konfigurerade i adapters.js fil. I det ögonblick som du skriver denna artikel kommer Sails med tre adaptrar: minne, disk och mysql men du kan skriva din egen adapter (se dokumentationen för detaljer).

När du har en modell definierad kan du använda den genom att skapa poster, hitta poster, uppdatera och förstöra poster.


controllers

Controllers är placerade i api / controllers. En kontroller skapas med följande kommando:

seglar generera controller kommentar

Detta kommando kommer att generera en CommentController objekt. Åtgärder definieras inuti detta objekt. Åtgärder kan också genereras när du utfärdar generera controller kommando:

seglar generera controller kommentar skapa förstöra tagg som

Detta skapar en Kommentar controller med åtgärder för skapa, förstöra, märka och tycka om.

Åtgärder får som parametrar begäran och svarobjekten, som kan användas för att få parametrar för URI (begäranobjektet) eller utmatning i visningen (med hjälp av svarobjektet).

För att kommunicera med modellen används återuppringningen av den lämpliga åtgärden. Till exempel, när det gäller att fråga en databas med hitta, Följande mönster används för att manipulera modellen:

Blog.find (id) .done (err, blog) // blog är databasposten med den angivna id console.log (blog.content); 

Visningar

Visningar används för att hantera applikationens användargränssnitt. Som standard hanteras vyer med EJS, men alla andra templerande bibliotek kan användas. Hur man konfigurerar visningar diskuterades tidigare i kapitlet Konfiguration.

Visningar definieras i / views katalog och mallarna definieras i / assests / mallar mapp.

Det finns huvudsakligen fyra typer av åsikter:

  • serverns visningar
  • visa partials
  • layoutvyer
  • visningar på klientsidan

Server-sidvisningar

Deras jobb är att visa data när en visning begärs av klienten. Vanligtvis metoden res.view motsvarar en klient med lämplig vy. Men om ingen kontroller eller åtgärd finns för en förfrågan, kommer Sails att betjäna visningen på följande sätt: /views/:controller/:action.ejs.

Layoutvyn

Layouten finns i /views/layout.ejs. Den används för att ladda programtillgångar som stilark eller JavaScript-bibliotek.

Ta en titt på den angivna filen:

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

Linjerna assets.css () och assets.js () ladda CSS och JS tillgångarna i vår ansökan och assets.templateLibrary laddar klientmallarna.

Klientsidemallar

Dessa definieras i / tillgångar / mallar och laddas som vi såg ovan.


rutter

Vi diskuterade hur man konfigurerar rutter i kapitlet Konfiguration.

Det finns flera konventioner som seglar följer när rutter hanteras:

  • om URL: n inte anges i config / routes.js Standardrutan för en URL är /: Styrenheten /: action /: id med de uppenbara betydelserna för kontroller och åtgärder och id vara förfrågningsparametern härledd från webbadressen.
  • om :verkan är inte specificerat, seglar omdirigeras till lämplig åtgärd. Utanför lådan används samma RESTful-rutkonventioner som i Ryggrad.
  • Om den begärda kontrollen / åtgärden inte finns kommer Sails att uppträda som så:
    • Om en vy existerar, kommer Sails att göra den vyn
    • Om en vy inte existerar, men en modell existerar, kommer Sails att returnera JSON-formen för den modellen
    • Om inget av ovanstående existerar, svarar Sails med en 404

Slutsats

Nu har jag knappt repat ytan med vad Seglar kan göra, men håll dig stillad, eftersom jag kommer att följa upp detta med en djup presentation som visar dig hur man bygger en applikation med segel.

Tänk också på att Sails är under utveckling och ständigt förändras. Så se till att kolla in dokumentationen för att se vad som är nytt.