Introduktion til NodeJS + SailsJS

Hej til hele samfundet! Jeg hedder Bruno, og jeg har været derinde DesdeLinux som bruger. Det er tid for mig at komme med mine første indlæg i dette samfund 🙂

I dag bringer jeg dig en guide videre NodeJS y sejl.js

node.js

Det er et programmeringsmiljø, der er baseret på sproget Javascript med en begivenhedsorienteret arkitektur, ideel til asynkron programmering. Node, er baseret på motoren V8 fra Google.
Det opretholder et aktivt open source-samfund, der har skrevet mange moduler for at lette vores udvikling.
En af dem er socket.io (Tillader serveren at sende opdateringer i realtid til klienten, f.eks. Sporing af en GPS)

Hvad er det for?

Node er designet til situationer, hvor trafikken er for stor, hvilket forårsager serverlogik og gennemstrømning ikke nødvendigvis højere. Og ikke kun det, men i realtid og med stor skalerbarhed!

Hvorfor knude?

1 er open source.
2) Hvis du nogensinde har tænkt på at bruge et enkelt sprog på både server- og klientsiden, her er løsningen.
3) Skalerbarhed og Sammenfald.
4) osv.

sejl.js

Jeg valgte sejl på grund af følgende egenskaber, foruden det faktum, at det efter min mening var det mest læsbare med hensyn til kode. Øje! eksisterer MANGE rammer for Node, som det er Express, Vinkelforskydning, gedyOsv

Skærmbillede - 080913 - 13:21:50

Hvad er sejl?

Det er en MVC-ramme der efterligner modellen af rubin på skinner (Ja, du har hørt korrekt: D) ​​til oprettelse af små eller store applikationer hurtigt, nemt og sikkert. yderligere har support til moderne applikationskrav. Det betyder ikke noget, hvilken database du bruger, Sejl giver et lag af abstraktion, hvilket gør valget af det ligegyldigt. Sejl har:

- Evnen til at skabe RESTfuld JSON API automatisk.
- Det indeholder modulet socket.io.
- Generer ruter automatisk til dine controllere.
- Tilbyder system af autentificering af brugere og kontrol de acceso rollebaseret.
- Grunt som Task Runner (automatiske opgaver som minifikation, kompilering, test osv.)
- Aktiver: Alle filer i deres tilsvarende mapper (css, js) er samlet i en enkelt fil og minificeret, at reducere betydeligt sideindlæsning og begrænset antal browseranmodninger.

Installation af Node.Js

Det tårn, jeg gjorde med Ubuntu 13.04.

sudo apt-get install python-software-properties python g++ make
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs

Sails.Js installation

Seneste stabile version:
sudo npm -g install sails

På dette tidspunkt uden fejl opretter vi et nyt projekt! 😀

Opret katalogskelettet:
sails new testProject

Vi går ind i vores projekt:
cd testProject

Vi starter serveren:
sails lift

Yeeeeeeeeeeah! vi kom ind http://localhost:1337/

Skærmbillede - 080913 - 13:02:34

Strukturen i vores bibliotek skal se sådan ud:
Skærmbillede - 080913 - 13:07:57

API'er:
- Chauffører
- Adaptere
- Modeller
- Politikker
- Tjenester

AKTIVER:
- billeder
- js
- stilarter
favicon
robotter

KONFIG:
- lokal
404.js, 500.js… ..
ruter.js
session.js
sockets.js …… ..

NODE_MODULER:
- ejs (skabelonmotor)
- grynt
- optimist
- sejl-disk

VISNINGER:
- Hjem (her er rodskabelonen, localhost)
- 404.ejs
- 500.ejs
- layout.ejs (For dem, der brugte skinner, opfører layouts.ejs sig lignende end layouts.html. *)

EJS (Embedded Javascript) Det er en skabelonmotor, men ikke den eneste. Jeg kan især lide JADE bedre

FIN

Indtil videre har min viden, og jeg håber, at jeg har været til hjælp for mange ... det er jeg nuevo i denne teknologi, så enhver konstruktiv kritik er velkommen 🙂

Dette indlæg opstod for at gøre det, fordi jeg udvikler et slags psykosocialt netværk (Intet fra en anden verden). Med formål med læringog få ressourcer. ideen er også at oprette en hjemmeserver, der understøtter den (Sikkert lave en tutorial af det) Som jeg sagde før, er ressourcerne få, så det optimering Det er meget vigtigt. (og selvom de ikke var for ^^)


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Arthur Shelby sagde han

    Det forbløffer mig, hvor trofast det efterligner RoR, selvom mange hader RoR for sin dårlige ydeevne (uden at konfigurere) kode rengørings sæt tendens.

    Emnet er meget interessant, jeg håber, du fortsætter med at udvikle det, tillykke.

    1.    nano sagde han

      Jeg hader ikke RoR, sandheden er, at Rubys filosofi om "der er mange måder at gøre det samme på" normalt er et problem, fordi ikke dem alle virkelig er de mest effektive, og når du vil besvare et spørgsmål, har du i mange tilfælde det Lille problem, hvor alle reagerer med en anden måde at gøre det samme på, og du har tendens til at blive mere forvirret D:

      Med hensyn til denne ramme for Node, da det ikke er for store eller store ting, bruges Node sammen med andre rammer som Django til specifikke ting, jeg synes eksemplet på Mejorando.la er sådan, de bygger hele siden og administrerer dens baser af data med Django, men realtidsproblemerne overlades til Node, selvom jeg ikke er sikker, så jeg kan ikke tale for meget om det.

      1.    jamin samuel sagde han

        Jeg tror, ​​det er sådan du siger, de bruger Django til basen af ​​webstedet og Node til ting i realtid ... Nå er det i det mindste det, jeg altid hører freddy vega sige

        1.    Bruno cascio sagde han

          NodeJS er ikke som Django eller PHP eller rubin. Men det er en server som Apache, Nginx osv.

          Sails er rammen, der gør brug af nodejs og express (en anden ramme) sammen med nogle moduler såsom socket.io til oprettelse af webapplikationer.

          Greetings!

          1.    Arnoldo RLF sagde han

            så hvis du vil inkludere en chat lavet med nodejs med en side i python med Django (for at fortsætte med eksemplet med forbedring. la), skal du bruge en ramme eller tildele apache (hvis det er tilfældet, har jeg ingen idé om hvilken server brug python) stien http://miweb.com ya node.js http://miweb.com/chat og kommunikere dem

  2.   jamin samuel sagde han

    Hej det er super interessant….

    Det, jeg ikke afsluttede, er, hvorfor bruges Node JS til internettet?

    1.    Arnoldo RLF sagde han

      det er et alternativ til apache med fordelen ved at være i realtid (applikationer, der kommunikerer hele tiden og ikke kun, når anmodningen fremsættes).

      1.    David Gomez sagde han

        NodeJS er ikke et alternativ (eller erstatning) til Apache, NGINX eller nogen anden webserver. NodeJS er en JavaScript-tolk til serveren, der giver dig mulighed for at oprette applikationer med dette sprog, der ellers ville kræve brug af sprog som Java, Python, Ruby eller PHP.

        1.    Bruno cascio sagde han

          Ja, måske udtrykte jeg mig forkert. Hvad jeg ville formidle er, at node.js kører sin egen server og ikke har brug for tredjeparter til at arbejde (apache, nginx, cherokee osv.)

          Greetings!

  3.   Arnoldo RLF sagde han

    meget god, jeg håber flere tutorials for at kunne følge node.js og gøre noget i realtid

    1.    Bruno cascio sagde han

      Her efterlader jeg dig en bog på 200 sider med en introduktion til Node.js gennem Koans. Det har en ind til Node.js, og "løsningen" af en del af et stillet problem (eksemplet er twitter) med Express som overskriftsramme… ..

      http://nodejskoans.com/

      PS: Sejl er lavet på Express-basis, normalt er de fleste.

      Greetings!

  4.   Elav sagde han

    Fremragende bidrag Bruno .. Velkommen 😀

    1.    Bruno cascio sagde han

      Tak til dig og hele samfundet for at lade være en del af det 🙂 Hilsner!

  5.   auroszx sagde han

    Meget interessant Bruno 🙂

    1.    Bruno cascio sagde han

      Tak!

  6.   Svampkvinden sagde han

    Fremragende artikel. Mange tak.

    Jeg bruger i øjeblikket sejl i nogle af mine projekter. Jeg vil gerne spørge dig, hvor jeg kan få flere oplysninger om den rollebaserede adgangskontrol af sejl, hvis det er muligt på spansk, men hvis ikke, på engelsk. Jeg vil gerne tilføje adgangskontrol til en af ​​mine sider, men jeg vil oprette tilladelser for nogle brugere fra en bestemt rute og andre fra en anden rute. Er det muligt med sejl? Jeg kan ikke finde meget information om det.

    Tak og tillykke med artiklen.

    hilsener
    Elvira.

    1.    Bruno cascio sagde han

      Hej Elvira!

      Hvad det du nævner, det være sig Sailsjs eller andre rammer, hvad du foreslår er relateret til modelleringen af ​​dataene og de begrænsninger, systemet pålægger.

      Du kan oprette noget som "grupper" (roller) med forskellige tilladelser og knytte hver bruger til en af ​​dem.

      Især i sejl kaldes de "politikker", og du kan se det her: http://sailsjs.org/#/documentation/concepts/Policies

      Hilsner og tak for din kommentar!

      1.    Svampkvinden sagde han

        Mange tak Bruno. Med dine opfordringer fandt jeg en elegant løsning. en hilsen