Panimula sa NodeJS + SailsJS

Kamusta sa buong pamayanan! Ang pangalan ko ay Bruno, at nakapasok na ako DesdeLinux bilang isang gumagamit. Panahon na para sa akin na gawin ang aking unang mga post sa komunidad na ito 🙂

Ngayon dinadala ko sa iyo ang isang gabay sa NodeJS y sails.js

node.js

Ito ay isang kapaligiran sa programa, batay sa wika Javascript na may isang arkitektura na nakatuon sa kaganapan, perpekto para sa asynchronous na programa. Node, ay batay sa engine V8 ng Google.
Pinapanatili nito ang isang aktibong open source na pamayanan, na nagsulat ng maraming mga module upang mapabilis ang aming pag-unlad.
Ang isa sa kanila ay socket.io (Pinapayagan ang server na magpadala ng mga real-time na pag-update sa client, halimbawa ang pagsubaybay ng isang GPS)

Ano ito para sa?

Ang node ay idinisenyo para sa mga sitwasyon kung saan ang trapiko ay masyadong malaki, na nagiging sanhi ng server logic at throughput na hindi kinakailangang mas mataas. At hindi lamang iyon, ngunit sa real time at may mahusay na kakayahang sumukat!

Bakit Node?

1 ay open source.
2) Kung naisip mo na gumamit ng isang solong wika sa parehong panig ng server at client, narito ang solusyon.
3) Kakayahang sukatin at Pagsabay.
4) Atbp

sails.js

Pinili ko ang mga paglalayag, dahil sa mga sumusunod na katangian, pati na rin ang pinaka nababasa sa mga tuntunin ng code sa aking pananaw. Mata! mayroon MARAMI mga balangkas para sa Node, tulad nito Ekspres, Anggular, Si Geddy, Atbp

Screenshot - 080913 - 13:21:50

Ano ang Sails?

Isang Balangkas ng MVC na ginagaya ang modelo ng ruby sa daang-bakal (Oo, narinig mo nang tama: D) para sa paglikha ng maliliit o malalaking application nang mabilis, madali at ligtas. sa karagdagang ay may suporta para sa mga modernong kinakailangan ng aplikasyon. Hindi mahalaga kung aling database ang ginagamit mo, Ang mga paglalayag ay nagbibigay ng isang layer ng abstraction, na ginagawang walang malasakit ang pagpili dito. Ang mga paglalayag ay may:

- Ang kakayahang lumikha RESTful JSON API awtomatiko.
- Isinama nito ang module socket.io.
- Bumuo ng mga ruta awtomatiko para sa iyong mga kumokontrol.
- Nagbibigay ng system ng pagpapatunay ng mga gumagamit at pag-access control nakabatay sa papel.
- ingit bilang Task Runner (Mga awtomatikong gawain tulad ng pagliit, pagtitipon, pagsubok, atbp)
- Mga Asset: Lahat ng mga file sa kanilang kaukulang mga direktoryo (css, js) ay pinag-isa sa isang solong file at pinaliit, upang mabawasan malaki pagkarga ng pahina at limitadong bilang ng mga kahilingan sa browser.

Pag-install ng Node.Js

Ang turorial na ginawa ko 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

Mga pag-install ng Sails.Js

Pinakabagong matatag na bersyon:
sudo npm -g install sails

Sa puntong ito nang walang mga pagkakamali, lumikha kami ng isang bagong proyekto! 😀

Lumikha ng skeleton ng direktoryo:
sails new testProject

Pinapasok namin ang aming Project:
cd testProject

Sinimulan namin ang server:
sails lift

Yeeeeeeeeeeah! kami ay pumasok http://localhost:1337/

Screenshot - 080913 - 13:02:34

Ang istraktura ng aming direktoryo ay dapat magmukhang ganito:
Screenshot - 080913 - 13:07:57

Mga API:
- Mga Driver
- Mga Adapter
- Mga Modelong
- Mga Patakaran
- Mga Serbisyo

ASET:
- mga imahe
- js
- mga istilo
favicon
robots

MGA SETTING:
- lokal
404.js, 500.js… ..
mga ruta.js
session.js
sockets.js …… ..

NODE_MODULES:
- ejs (template engine)
- ungol
- maasahin sa mabuti
- sails-disk

TINGNAN:
- Home (narito ang root template, localhost)
- 404.ejs
- 500.ejs
- layout.ejs (Para sa mga gumagamit ng daang-bakal, layouts.ejs kumilos katulad kaysa sa layouts.html. *)

EJS (Naka-embed na Javascript) Ito ay isang template engine, ngunit hindi lamang ang isa. Partikular na mas gusto ko ang JADE

Palikpik

Sa ngayon ang aking kaalaman, at inaasahan kong nakatulong ako sa marami ... ako bago sa teknolohiyang ito kaya't anumang nakabubuting pagpuna ay maligayang pagdating 🙂

Ang post na ito ay lumitaw upang gawin ito, dahil bumubuo ako ng isang uri ng psychosocial network (Wala mula sa ibang mundo). Sa layunin ng pag-aaral, at kaunting mapagkukunan. ang ideya ay gumawa din ng isang server ng bahay na sumusuporta dito (Tiyak na gumawa ng isang tutorial nito) Tulad ng sinabi ko dati, kakaunti ang mapagkukunan, kaya ang pag-optimize Napakahalaga nito. (at kahit na hindi sila masyadong ^^)


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   Arthur Shelby dijo

    Namangha ako sa kung gaano ito katapat na tularan ang RoR, kahit na maraming poot sa RoR para sa hindi magandang pagganap nito (nang hindi na-configure) ang paglilinis ng code ng tren.

    Napakainteresado ng paksa, inaasahan kong ipagpatuloy mo itong paunlarin, binabati kita.

    1.    nano dijo

      Hindi ko kinamumuhian si RoR, ang totoo ay ang pilosopiya ni ruby ​​ng "maraming paraan upang gawin ang parehong bagay" ay karaniwang isang problema dahil hindi lahat sa kanila ay talagang ang pinaka mahusay at kung nais mong sagutin ang isang katanungan, sa marami mga kaso mayroon kang Maliit na problema kung saan sinasagot ka ng lahat ng tao sa iba't ibang paraan ng paggawa ng pareho at may posibilidad kang mas malito D:

      Tungkol sa balangkas na ito para sa Node, dahil hindi ito para sa malalaki o malalaking bagay, ginagamit ang Node kasama ang iba pang mga frame tulad ng Django para sa mga tiyak na bagay, sa palagay ko ang halimbawa ng Mejorando.la ay ganito, itinatayo nila ang buong site at pinamamahalaan ang mga base ng data sa Django ngunit ang mga isyu sa realtime ay naiwan kay Node, kahit na hindi ako sigurado kaya hindi ko masyadong mapag-uusapan iyon.

      1.    jamin samuel dijo

        Sa palagay ko iyan ang sasabihin mo, ginagamit nila ang Django para sa base ng site at Node para sa mga bagay sa real time ... Kaya't hindi bababa sa iyon ang palagi kong naririnig na sinasabi ng freddy vega

        1.    Bruno cascio dijo

          Ang NodeJS ay hindi tulad ng Django o PHP, o ruby. Ngunit ito ay isang server tulad ng Apache, Nginx, atbp.

          Ang Sails ay ang balangkas na gumagamit ng mga nodejs at express (ibang balangkas) kasama ang ilang mga module tulad ng socket.io, para sa paglikha ng mga web application.

          Pagbati!

          1.    Arnoldo RLF dijo

            kaya kung nais mong isama ang isang chat na ginawa kasama ang mga nodejs na may isang pahina sa sawa kasama si Django (upang magpatuloy sa halimbawa ng pagpapabuti.la), kakailanganin mong gumamit ng isang frame, o magtalaga sa apache (kung iyon ang kaso, ako walang ideya kung aling server ang gumagamit ng sawa) ang landas http://miweb.com ya node.js http://miweb.com/chat at makipag-usap sa kanila

  2.   jamin samuel dijo

    Hey na sobrang kawili-wili ....

    Ang hindi ko natapos kung bakit ginagamit ang Node JS para sa web?

    1.    Arnoldo RLF dijo

      ito ay isang kahalili sa apache, na may kalamangan na maging real time (mga application na nakikipag-usap sa lahat ng oras at hindi lamang kapag ang kahilingan ay ginawa).

      1.    David gomez dijo

        Ang NodeJS ay hindi isang kahalili (o kapalit) sa Apache, NGINX o anumang iba pang web server. Ang NodeJS ay isang JavaScript interpreter para sa server, na nagbibigay-daan sa iyo upang lumikha ng mga application na may wikang ito na kung hindi ay mangangailangan ng paggamit ng mga wika tulad ng Java, Python, Ruby o PHP.

        1.    Bruno cascio dijo

          Oo, siguro mali ang ipinahayag ko sa aking sarili. Ang nais kong iparating ay ang node.js nagpapatakbo ng sarili nitong server at hindi kailangan ng mga third party upang magtrabaho (apache, nginx, cherokee, atbp)

          Pagbati!

  3.   Arnoldo RLF dijo

    napakahusay, inaasahan kong mas maraming mga tutorial na magagawang sundin ang node.js at gumawa ng isang bagay sa real time

    1.    Bruno cascio dijo

      Narito ang isang 200-pahina na libro, na may isang pagpapakilala sa Node.js sa pamamagitan ng Koans. Ito ay may sa sa Node.js, at ang "resolusyon" ng isang bahagi ng isang problemang nailahad (ang halimbawa ay kaba) na may Express bilang balangkas ng header ... ..

      http://nodejskoans.com/

      PS: Ang mga paglalayag ay ginawa sa batayang Express, karaniwang karamihan sa mga ito ay.

      Pagbati!

  4.   masigla dijo

    Mahusay na kontribusyon Bruno .. Maligayang pagdating 😀

    1.    Bruno cascio dijo

      Salamat sa iyo at sa buong pamayanan para sa pagpapaalam sa bahagi nito 🙂 Mga pagbati!

  5.   auroszx dijo

    Napakainteres Bruno 🙂

    1.    Bruno cascio dijo

      Salamat sa iyo!

  6.   Ang babaeng punasan ng espongha dijo

    Mahusay na artikulo Maraming salamat.

    Kasalukuyan akong gumagamit ng mga paglalayag sa ilan sa aking mga proyekto. Nais kong tanungin ka kung saan ako makakakuha ng karagdagang impormasyon tungkol sa kontrol na pag-access na batay sa papel para sa mga paglalayag, kung maaari sa Espanyol, ngunit kung hindi, sa Ingles. Nais kong magdagdag ng kontrol sa pag-access sa isa sa aking mga pahina ngunit nais kong magtaguyod ng mga pahintulot para sa ilang mga gumagamit mula sa isang tiyak na ruta at iba pa mula sa ibang ruta. Posible ba iyon sa mga paglalayag? Wala akong makitang impormasyon tungkol dito.

    Salamat at pagbati para sa artikulo.

    Isang pagbati
    Elvira.

    1.    Bruno cascio dijo

      Hello Elvira!

      Tungkol sa kung ano ang binanggit mo, maging Sailsjs o anumang iba pang balangkas, ang iyong imungkahi ay nauugnay sa pagmomodelo ng data at mga paghihigpit na ipinataw ng system.

      Maaari kang lumikha ng isang bagay tulad ng "mga pangkat" (mga tungkulin) na may iba't ibang mga pahintulot at maiugnay ang bawat gumagamit sa isa sa mga ito.

      Partikular sa mga paglalayag ang mga ito ay tinatawag na "mga patakaran" at makikita mo ito rito: http://sailsjs.org/#/documentation/concepts/Policies

      Pagbati at salamat sa iyong komento!

      1.    Ang babaeng punasan ng espongha dijo

        Maraming salamat Bruno. Sa iyong mga senyas, nakakita ako ng isang matikas na solusyon. isang pagbati