Uvod u NodeJS + SailsJS

Pozdrav cijeloj zajednici! Zovem se Bruno i bio sam u DesdeLinux kao korisnik. Vrijeme je da objavim svoje prve postove u ovoj zajednici 🙂

Danas vam donosim vodič NodeJS y sails.js

node.js

To je programsko okruženje, bazirano na jeziku Javascript s arhitekturom orijentiranom na događaje, idealnom za asinkrono programiranje. Čvor se zasniva na motoru V8 Google-a.
Održava aktivnu zajednicu otvorenog koda, koja je napisala mnogo modula kako bi nam olakšala razvoj.
Jedan od njih je socket.io (Omogućuje serveru da klijentu šalje ažuriranja u stvarnom vremenu, na primjer praćenje GPS-a)

Zbog čega?

Čvor je dizajniran za situacije kada je promet prevelik, što uzrokuje logiku i protok poslužitelja ne nužno veće. I ne samo to, već u stvarnom vremenu i uz veliku skalabilnost!

Zašto Node?

1 je open source.
2) Ako ste ikada pomislili koristiti jedan jezik i na serveru i na klijentu, evo rješenja.
3) skalabilnost i Podudarnost.
4) itd.

sails.js

Odabrao sam jedra zbog sljedećih karakteristika, pored činjenice da je po mom mišljenju bio najčitaniji u smislu koda. Oko! postoje MNOGO okviri za Node, takav kakav je izraziti, ugaoni, geddy, Itd

Snimka zaslona - 080913 - 13:21:50

Šta je jedra?

To je a MVC okvir koji oponaša model rubin na šinama (Da, dobro ste čuli: D) za stvaranje malih ili velikih aplikacija brzo, lako i sigurno. dalje ima podršku za savremene zahtjeve aplikacije. Nije važno koju bazu podataka koristite, Jedra pruža sloj apstrakcije, što njegov izbor čini ravnodušnim. Jedra ima:

- Sposobnost stvaranja RESTful JSON API automatski.
- Uključio je modul socket.io.
- Generiši rute automatski za vaše kontrolere.
- Pruža sistem autentifikacija korisnika i kontrola pristupa zasnovan na ulogama.
- groktaj kao pokretač zadataka (automatski zadaci kao što su minifikacija, kompilacija, testiranje itd.)
- Sredstva: Sve datoteke u odgovarajućim direktorijima (css, js) jesu objedinjeni u jednu datoteku i umanjeni, smanjiti znatno učitavanje stranice i ograničen broj zahtjeva pretraživača.

Instalacija Node.Js

Turorial sa kojim sam radio 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

Jedra.Js instalacija

Najnovija stabilna verzija:
sudo npm -g install sails

U ovom trenutku bez grešaka kreiramo novi projekt! 😀

Kreirajte kostur direktorija:
sails new testProject

Ulazimo u naš projekat:
cd testProject

Pokrećemo server:
sails lift

Yeeeeeeeeeah! ulazimo http://localhost:1337/

Snimka zaslona - 080913 - 13:02:34

Struktura našeg direktorija trebala bi izgledati ovako:
Snimka zaslona - 080913 - 13:07:57

API-ji:
- Vozači
- Adapteri
- Modeli
- Politike
- Usluge

IMOVINA:
- slike
- js
- stilovi
favicon
roboti

KONFIGIRANJE:
- lokalno
404.js, 500.js… ..
routes.js
session.js
sockets.js …… ..

NODE_MODULES:
- ejs (mehanizam predloška)
- gunđati
- optimista
- jedra-disk

PREGLEDI:
- Početna (ovdje je osnovni predložak, localhost)
- 404.ejs
- 500.ejs
- layout.ejs (Za one koji su koristili šine, ponaša se layouts.ejs igual nego layouts.html. *)

EJS (ugrađeni Javascript) To je mehanizam predložaka, ali ne i jedini. JADE mi se posebno više sviđa

FIN

Do sada svoje znanje i nadam se da sam mnogima bio od pomoći ... Jesam novi u ovoj tehnologiji je takva svaka konstruktivna kritika dobrodošli 🙂

Ovaj post je nastao radi toga, jer razvijam neku vrstu psihosocijalne mreže (Ništa iz drugog svijeta). Sa svrhe učenja, i malo resursa. ideja je također napraviti kućni server koji ga podržava (Svakako napravite tutorial o tome) Kao što sam već rekao, resursa je malo, pa i optimizacija Veoma je važno. (pa čak i da nisu previše ^^)


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   Arthur Shelby rekao je

    Zapanjen sam koliko vjerno oponaša RoR, iako mnogi mrze RoR zbog loših performansi (bez konfiguriranja) čišćenja koda koji postavlja trendove.

    Predmet je vrlo zanimljiv, nadam se da ćete ga i dalje razvijati, čestitam.

    1.    nano rekao je

      Ne mrzim RoR da budem iskren, stvar je u tome što je rubinova filozofija "postoji mnogo načina da se učini isto" obično problem, jer nisu svi oni najefikasniji i kada želite odgovoriti na pitanje , u mnogim slučajevima imate onaj Mali problem u kojem svi reagiraju na drugačiji način da učine isto, a vi se više zbunite D:

      Što se tiče ovog okvira za Node, budući da nije za velike ili velike stvari, Node se koristi zajedno s drugim okvirima kao što je Django za određene stvari, mislim da je primjer Mejorando.la takav, oni grade cijelu stranicu i upravljaju njezinim bazama podataka s Djangom, ali problemi u stvarnom vremenu prepušteni su Nodeu, iako nisam siguran pa o tome ne mogu previše razgovarati.

      1.    jamin samuel rekao je

        Mislim da se tako kaže, oni koriste Django za bazu stranice, a Node za stvari u stvarnom vremenu ... Pa, barem to uvijek čujem kako Freddy Vega govori

        1.    Bruno cascio rekao je

          NodeJS nije poput Djanga ili PHP-a ili ruby-a. Ali to je server poput Apachea, Nginxa itd.

          Jedra je okvir koji koristi nodejs i express (drugi okvir), zajedno s nekim modulima, poput socket.io, za stvaranje web aplikacija.

          Pozdrav!

          1.    Arnoldo RLF rekao je

            pa ako želite uključiti chat napravljen sa nodejs-om sa stranicom u pythonu sa Django-om (da nastavimo sa primjerom poboljšanja.la), morali biste koristiti okvir ili dodijeliti apache-u (ako je to slučaj, ja nemam pojma koji poslužitelj koristi python) stazu http://miweb.com ya node.js http://miweb.com/chat i komuniciraju ih

  2.   jamin samuel rekao je

    Hej super zanimljivo ...

    Ono što nisam završio je zašto se Node JS koristi za web?

    1.    Arnoldo RLF rekao je

      to je alternativa apacheu, s prednošću u stvarnom vremenu (aplikacije koje komuniciraju cijelo vrijeme, a ne samo kada se podnese zahtjev).

      1.    David gomez rekao je

        NodeJS nije alternativa (ili zamjena) Apacheu, NGINX-u ili bilo kojem drugom web serveru. NodeJS je JavaScript tumač za poslužitelj, omogućavajući vam stvaranje aplikacija s ovim jezikom koje bi inače zahtijevale upotrebu jezika kao što su Java, Python, Ruby ili PHP.

        1.    Bruno cascio rekao je

          Da, možda sam se pogrešno izrazio. Ono što sam želio reći je da node.js pokreće vlastiti server i ne trebaju mu treće strane za rad (apache, nginx, cherokee itd.)

          Pozdrav!

  3.   Arnoldo RLF rekao je

    vrlo dobro, nadam se da će više vodiča moći pratiti node.js i raditi nešto u stvarnom vremenu

    1.    Bruno cascio rekao je

      Ovdje vam ostavljam knjigu od 200 stranica, s uvodom u Node.js kroz Koans. Ima ulaz u Node.js i "rješavanje" dijela postavljenog problema (primjer je twitter) s Expressom kao okvirom zaglavlja ... ..

      http://nodejskoans.com/

      PS: Jedra se izrađuju na Express osnovi, obično je većina njih.

      Pozdrav!

  4.   živahno rekao je

    Odličan doprinos Bruno .. Dobrodošli 😀

    1.    Bruno cascio rekao je

      Hvala vama i cijeloj zajednici što ste dozvolili da budete dio toga it Pozdrav!

  5.   auroszx rekao je

    Vrlo zanimljivo Bruno 🙂

    1.    Bruno cascio rekao je

      Hvala!

  6.   Žena spužva rekao je

    Odličan članak. Hvala puno.

    Trenutno koristim jedra u nekim od svojih projekata. Želio bih vas pitati gdje mogu dobiti više informacija o kontroli pristupa jedrima zasnovanoj na ulogama, ako je moguće na španskom, a ako ne, na engleskom jeziku. Želio bih dodati kontrolu pristupa na jednu od svojih stranica, ali želim uspostaviti dozvole za neke korisnike s određene rute, a druge s druge rute. Da li je to moguće s jedrima? Ne mogu naći mnogo podataka o tome.

    Hvala i čestitam na članku.

    Hvala!
    Elvira.

    1.    Bruno cascio rekao je

      Zdravo Elvira!

      Što se tiče onoga što spominjete, bilo da je to Sailsjs ili bilo koji drugi okvir, ono što predlažete povezano je s modeliranjem podataka i ograničenjima koja sistem nameće.

      Možete stvoriti nešto poput "grupa" (uloga) s različitim dozvolama i pridružiti svakog korisnika jednoj od njih.

      Posebno se u jedrima nazivaju "polise", a možete ih vidjeti ovdje: http://sailsjs.org/#/documentation/concepts/Policies

      Pozdrav i hvala na komentaru!

      1.    Žena spužva rekao je

        Hvala ti puno Bruno. Uz vaše upute pronašao sam elegantno rješenje. pozdrav