2. helmikuuta 2012 – Kirjoittanut Lee Jacobson

Esittely

Tämä on ensimmäinen osa opetussarjassa, jonka haluan kirjoittaa Node.js:stä. Minun pitäisi tehdä selväksi, etten ole Node.js:n asiantuntija, mutta hyvä tapa tarkistaa, että ymmärtää jotain, on yrittää selittää se jollekin toiselle. Jos näet jotain, joka ei ole mielestäsi aivan oikein, kerro minulle, jotta voin korjata virheen.
Päädyin hiljattain oppimaan Node.js:ää sen kasvavan suosion vuoksi. Ohjelmointiala liikkuu uskomattoman nopeasti ja on vaarallista jäädä jälkeen. Uusien kielten oppiminen on tärkeää, koska jos et opi, jäät todennäköisesti jälkeen ja olet ilman työtä. Ajattele kaikkia niitä flash-kehittäjiä, jotka eivät enää löydä töitä.
Aloitetaan siis pienellä informaatiolla (blegh!).
Node.js on palvelinpuolen versio JavaScriptistä. Se tarkoittaa, että kaikki ne kaikki hienot jutut JavaScriptistä pätevät myös täällä. Se tarkoittaa myös sitä, että jos olet jo melko hyvin perehtynyt JavaScriptiin, sinulla on mukava etu. Node.js on vasta muutaman vuoden vanha, ja se tarkoittaa, että jopa ihmiset, jotka ovat työskennelleet sen kanssa alusta asti, ovat käyttäneet sitä vasta muutaman vuoden ajan. Vertaa tätä siihen, kuinka kauan jotkut ihmiset ovat kirjoittaneet C:llä. Koska kieli on niin uusi, se tarkoittaa myös sitä, ettei sitä osaa kovin moni, ja se tarkoittaa, että yksinkertaisen kysynnän ja tarjonnan säännön perusteella taitosi on arvokkaampi kuin keskiverto PHP-ohjelmoijalla.

Hellowee-maailman luominen

Luotaan nyt hellowee-maailma. Mene ensin osoitteeseen http://www.nodejs.org ja lataa node.js. Kun se on asennettu ja valmis, luo uusi JavaScript-tiedosto seuraavasti:

console.log(”Hello World”);

Tallenna nyt tiedosto, anna sille nimeksi vaikkapa ”hello.js” ja suorita se seuraavalla komennolla:

node hello.js

Sitten sinun pitäisi saada terminaaliin näkyviin ’Hello World’. Tuo kaikki on hyvä, mutta olen varma, että tärkeämpää on tietää, miten tulostaa ’Hello World’ uusille HTTP-yhteyksille.
Avaa uudelleen tekstieditori ja kirjoita:
Tallenna nyt tiedostosi ja suorita se komennolla:

node hello.js

Terminaalissa pitäisi näkyä ’Palvelin käynnistetty’. Hienoa! Avaa nyt selaimesi ja siirry osoitteeseen ’http://localhost:8080’ sinun pitäisi nähdä ’Hello World’-viestisi.
Katsotaanpa koodiamme tarkemmin.
Ensimmäisellä rivillä vain haetaan http-moduuli ja tallennetaan se muuttujaan ’http’. http sisältyy Node.js:ään, jotta meidän olisi helppo luoda Node.js-sovelluksia.
Voidaan sitten käyttää http-moduulia http-palvelimen luomiseen kutsumalla sen funktiota ’createServer’. Tämä funktio palauttaa objektin ja ottaa parametrina funktion.

Kutsumme funktiota ’listen’ uudelle palvelinobjektillemme, joka ottaa parametrina numeerisen arvon, joka kertoo palvelimellemme, mitä porttia haluamme sen kuuntelevan. Meidän tapauksessamme käytämme porttia 8080, minkä vuoksi yhdistimme selaimen http://localhost:8080
Luomme myös funktion ja käytämme sitä parametrina funktiolle ’createServer’. Tämä on melko tavallista JavaScriptissä, koska funktiot voivat olla parametreja aivan kuten muuttujat ja objektit voivat olla. Aina kun palvelimemme saa uuden yhteyden porttiin 8080, se suorittaa antamamme funktion. Mielenkiintoista on, että funktiota, jonka välitämme sille, kutsutaan nimettömäksi funktioksi, ja sitä kutsutaan nimellä anonyymi funktio, koska emme anna sille nimeä.
Olet ehkä huomannut, että anonyymi funktiomme ottaa kaksi parametria, ’request’ ja ’response’. HTTP-palvelin välittää nämä parametrit anonyymille funktiollemme, kun se saa uuden yhteyden. Molemmat ovat objekteja, joita voimme käyttää vastauksessamme saapuvaan pyyntöön.
Olet huomannut, että ensimmäiseksi kutsumme funktiota ’writeHead’, jonka avulla voimme asettaa HTTP-statuksen ensimmäiseksi parametriksi ja lähettää joitakin vastausotsikoita toiseksi parametriksi. Asetamme statuskoodin 200, joka kertoo selaimellemme, että kaikki on kunnossa, ja välitämme sille myös ’Content-Type’-otsikon, joka kertoo selaimellemme, mitä lähetämme. Meidän tapauksessamme se on pelkkää tekstiä.
Seuraavaksi käytämme vastausobjektia kirjoittaaksemme ’Hello World’-tekstin. Teemme tämän yksinkertaisesti kutsumalla sen write-funktiota ja välittämällä sille tekstimme. Tässä vaiheessa olemme valmiit vastauksemme kanssa, joten kerromme siitä response-objektille kutsumalla sen ’end’-funktiota.

Vastauksemme tekeminen mielenkiintoisemmaksi

Hello maailma on aika tylsä, joten tehdään jotain hieman viihdyttävämpää. Voimme luoda käyttäjälaskurin hyvin helposti Node.js:ssä, eikä meidän tarvitse edes käyttää tietokantaa kuten PHP:ssä.
Luo uusi JavaScript-tiedosto nimeltä ’counter.js’ ja kirjoita seuraava:
Ajetaan se nyt komennolla:

node counter.js

Kun selaimesi siirtyy osoitteeseen ’http://localhost:8080’, sinun pitäisi nyt saada näkyviin katselulaskuri.
Huomaa: Saatat nähdä laskurin nousevan kahdella jokaisella pyynnöllä, tämä johtuu siitä, että selaimesi pyytää palvelimelta favicon-kuvaketta (http://localhost:8080/favicon.ico).
Sinun pitäisi myös nähdä, että Node.js kirjaa jokaisen saamansa pyynnön konsoliin.
Pääasiassa asetamme tässä muuttujan ’userCount’ ja kasvatamme sitä jokaisella pyynnöllä. Kirjoitamme sitten ’userCount’-luvun vastaustekstiin.
PHp:ssä saman asian tekeminen edellyttäisi tietojen tallentamista esimerkiksi tekstitiedostoon tai tietokantaan.

Tämä opetusohjelma on saatavilla myös kiinaksi: http://www.laonan.net/blog/63/
Kiitos laonanille käännöksestä

Jos pidit tästä opetusohjelmasta, tutustu osaan 2, Node.js aloittelijoille – Callbackit

Tekijä

Hei, olen Lee.
Olen brittiläinen kehittäjä, joka rakastaa teknologiaa ja liiketoimintaa. Täältä löydät artikkeleita ja opetusohjelmia minua kiinnostavista asioista. Jos haluat palkata minut tai tietää minusta lisää, suuntaa Tietoja minusta -sivulleni

Sosiaaliset linkit

Tags