Dinko Mihovilović
Autor:
Dinko Mihovilović

.Net developer

Hello Node.js

JavaScript napušta granice browsera

Node.js, ili jednostavno Node, je platforma za izgradnju brzih i skalabilnih aplikacija. „Ispod haube“ nalazi se Googleov V8 JavaScript engine koji izvodi kod i velik broj osnovnih modula napisan je u JavaScriptu.

Aplikacije napisane u Nodeu pogodne su za real-time situacije zbog njihove asinkronosti: informacije do korisnika dolaze brže jer nema potrebe za ponovnim učitavanjem čitavih stranica te jedna radnja ne blokira druge radnje. Iako vrte jednu nit (dretva, thread), Node.js aplikacije koriste višenitni sustav za obradu događaja vezanih uz datoteke i mrežu.

Dio platforme čine i ugrađene biblioteke za HTTP i socket komunikaciju, zbog čega Node postaje web server bez dodatnih serverskih softwarea poput, npr., Apachea. Stoga je pisanje serverskog koda na ovoj platformi ujedno i pisanje samog servera.

Ali, tko bi uopće htio pisati server-side kod u JavaScriptu?

JavaScript se danas koristi na većini web stranica i web aplikacija. On je univerzalni programski jezik browsera i nudi nam čitav niz biblioteka koje nam mogu olakšati izgradnju aplikacija. Koristeći ga i na klijentu, i na serveru, možemo se koncentrirati samo na jedan jezik. Istina, JavaScript sam po sebi dopušta razne „prljavštine“ glede same strukture koda, no ako programer koristi principe objektno orijentiranog dizajna, kod može biti kvalitetan i jednostavan za održavanje.

Još jedan razlog za korištenje Node.js-a jest njegova jednostavnost: glavne su funkcionalnosti svedene na minimum i svi postojeći API-ji su prilično elegantni te je kompleksnost koja dolazi do programera zadržana na što nižoj razini. S druge strane, ako želite izgraditi nešto kompleksnije, s lakoćom možete u svoj projekt ubaciti razne third-party module. To se izvodi kroz Node Package Manager (NPM) koji je zapravo tri stvari u jednoj: repozitorij third-party paketa, menadžer za instalirane pakete i standard za definiranje ovisnosti o drugim paketima.

Što se tiče čuvanja podataka, Node.js možete koristiti, između ostaloga, i s MySQL bazama te sve popularnijom NoSQL bazom MongoDB.

Instalacija

Node možete instalirati na Windowse, Mac OS te Linux i SunOS. Sve što treba jest posjetiti link: http://nodejs.org/download/ i odabrati svoju verziju.

Install options

Hello World

Nakon instalacije Node.js-a, možemo napraviti jednostavan Hello World primjer. U svega nekoliko linija koda, pokrenut ćemo web server i ispisati poruku.

U datoteku server.js napišemo sljedeći kod:

var http = require("http");

http
.createServer(function(request, response) {
  response
.writeHead(200, {"Content-Type": "text/plain"});
  response
.write("Hello World");
  response
.end();
}).listen(3000);

 

I to je sve – upravo smo dobili funkcionirajući HTTP server. Kako bismo ga pokrenuli, otvaramo CMD ili terminal, ovisno o platformi, i ulazimo u folder u kojem se nalazi skripta te napišemo:

node server.js

 

Nakon toga možemo otvoriti browser i otići na http://localhost:3000/ . Tamo bismo trebali vidjeti tekst „Hello World“.

Prva linija koda koju smo napisali u server.js datoteci dohvaća http modul koji dolazi s Nodeom. Nakon toga pozivamo jednu od funkcija tog modula – createServer. Ta funkcija vraća objekt koji ima metodu listen i prima numeričku vrijednost koja predstavlja broj porta koji će HTTP server osluškivati.

Ono što može biti neobično programeru koji se inače ne koristi JavaScriptom jest definicija funkcije na mjestu gdje bi trebao biti prvi parametar poziva createServer. Ta definicija funkcije je, zapravo, prvi (i ovom slučaju jedini) parametar poziva te funkcije. No, činjenica da se u JavaScriptu funkcije mogu slati kao bilo koje druge vrijednosti je tema za sebe.

Riječ za kraj

Ako vas zanima tehnologija koja je iznad predstavljena, odličan način za isprobati nešto više jest otići na stranicu http://socket.io/  i proći jednostavan tutorial za live chat. Socket.IO je modul za Node.js koji omogućava dvosmjernu real-time, event-based komunikaciju i jedino što vam treba je prethodno instalirani Node.

Izvori

Teixeira, Pedro: „Professional Node.js“

http://nodejs.org/

http://www.nodebeginner.org/

Popularne teme
.NET ABAP ADFS Agile Always On Anemic Model Angular automatsko generiranje dokumnetacije Azure Backbone benchmark BI BI projekti blog Bootstrap building people business inteligence Business Intelligence Change Chrome CI CITCON Claims compile Continuous Delivery continuous deployment Continuous Integration CSR d3js data data visualization Data visualization alati DDD dekompozicija dependency injection development dinamička forma dinamički parametri dinamički query distribuirani razvoj dokumentacija Domain-Driven design DOP društvena odgovornost edge-based video analytics Eliminating waste enkapsulacija enterprise razvoj softvera ERP ETL Excel FIORI Frontend funkionalna dokumentacija game Geopackage GPKG GIS Git Groovy heat map HICCUPS Hichert HTML IBCS interoperability invision IoT IPSO izvještavanje java JavaFX Javascript Jazz Build Engine JBE Jenkins jquery jqueryui jsfiddle JVM Kaizen Kanban king KING ICT Kingovci Knockout kvaliteta lambde leadership Lean legacy code M language Management Maven Metodologija microservices Microsoft mobile Mobility mockups moć monday game NetWeaver network nodejs oblikovni obrasci OGC OKR open source optimizacija organizacija organizacijska struktura OutOfMemoryError outsourcing overengineering paginacija Performance performanse PERT PMI PMP; Agile; Project management; Scrum; KING ICT; razvoj; metodologija podatkovni skup poslovna analiza pouzdanost Power BI Power Map Power Pivot Power Query Power View pretraga proces procjena Product Owner programming proizvod Project manager projektni plan radar Rational Team Concert razvoj tima refaktoriranje Release resize responsive charts REST retrospektiva Rich-Domain model Roko Roić rolling wave planning RTC SAP scale scatterplot chart Scrum scrum team scrum tim service boundaries single responsibility principle Single Sign-On smart metering SoapUI social responsibility softver Software software prototyping Software Testing Club Spring Boot SQL standard sustav videonadzora svg swagger tdd Team team building team development Team Foundation Server tech tehnologije terminski plan Testing tim timesheet timovi Toggl.com touch transakcijski nadzor tražilica underengineering unit testing Uspjeh Visual Studio vodstvo vodstvo leadership moć društvena odgovornost DOP social responsibility CSR vođenje projekata WBS Web workshops Zagreb STC

PRIJAVA NA NEWSLETTER

Najnovije novosti iz ICT svijeta