Node.js – Serverside Javascript

24
Node.js – Serverside Javascript Maciej Jastrzębski Kraków, 8 października 2011

description

Node.js – Serverside Javascript. Maciej Jastrzębski. Czym jest Node.js Into the code Asynchroniczne I/O i Event Driven server Wydajność?! Node.js vs obecne rozwiązania. cross-platform & cross-device Client side. PaaS. SaaS. IaaS. cross-platform & cross-device Client side. - PowerPoint PPT Presentation

Transcript of Node.js – Serverside Javascript

Page 1: Node.js  –  Serverside Javascript

Node.js – Serverside Javascript

Maciej JastrzębskiKraków, 8 października 2011

Page 2: Node.js  –  Serverside Javascript

• Czym jest Node.js• Into the code• Asynchroniczne I/O i Event Driven server• Wydajność?!• Node.js vs obecne rozwiązania

Page 3: Node.js  –  Serverside Javascript

cross-platform & cross-device

Client side

PaaS

SaaS

IaaS

Page 4: Node.js  –  Serverside Javascript

cross-platform & cross-device

Client side

PaaS

SaaS

IaaS

Page 5: Node.js  –  Serverside Javascript

Czym jest Node.js?

Page 6: Node.js  –  Serverside Javascript

Czym jest Node.js

V8

Page 7: Node.js  –  Serverside Javascript

Środowisko Node.js

• V8 runtime (EcmaScript5) • Event Driven i Asynchroniczne I/O• process zamiast window!• System modułów i require (CommonJS)• Zestaw modułów natywnych• Wsparcie dla dodatków opartych o C/C++

Page 8: Node.js  –  Serverside Javascript

File system

var fs = require('fs');

//synchronicznievar content = fs.readFileSync('example.txt');

//asynchroniczniefs.readFile('example.txt', function (err, data) { if (err) throw err; console.log(data);});

Page 9: Node.js  –  Serverside Javascript

Server

var http = require('http');var url = require('url');

var status = "none";

http.createServer(function (req, res) { //ustawiamy nowy status var params = url.parse(req.url, true); if(params.hasOwnProperty('set_status')){ status = params['set_status']; } //zwracamy aktualny status res.writeHead(200, {'Content-Type': 'text/plain'}); res.end(status);}).listen(80, "127.0.0.1");

Page 10: Node.js  –  Serverside Javascript

setTimeout – raz jeszcze.

setTimeout(function(){ //pobierz dane z miejsca A}, 3000);

setTimeout(function(){ //pobierz dane z miejsca B}, 8000);

Page 11: Node.js  –  Serverside Javascript

Nowy wymiar asynchroniczności Javascript.

Page 12: Node.js  –  Serverside Javascript

Asynchroniczne I/O

Node.js

Server

GET http://example.com/index.html

Kolejka

Exec

GET http://example.com/hello.html

Page 13: Node.js  –  Serverside Javascript

Asynchroniczne I/O

Node.js

Server

Kolejka

Exec

Page 14: Node.js  –  Serverside Javascript

Asynchroniczne I/O

Node.js

Server

Kolejka

Exec

Page 15: Node.js  –  Serverside Javascript

Asynchroniczne I/O

Node.js

Server

Kolejka

Exec

Page 16: Node.js  –  Serverside Javascript

Asynchroniczne I/O

Node.js

Server

HTTP/1.1 200 OK

Kolejka

Exec

Page 17: Node.js  –  Serverside Javascript

Asynchroniczne I/O

Node.js

Server

Kolejka

Exec

Page 18: Node.js  –  Serverside Javascript

Asynchroniczne I/O

Node.js

Server

HTTP/1.1 200 OK

Kolejka

Exec

Page 19: Node.js  –  Serverside Javascript

Nowy wymiar asynchroniczności Javascript.

Page 20: Node.js  –  Serverside Javascript

Wydajność!

0

500

1000

1500

2000

2500

3000

3500

4000

4500

Req/sec

Request/second

Page 21: Node.js  –  Serverside Javascript

Komercyjne zastosowanie i duże projekty.

Page 22: Node.js  –  Serverside Javascript

npmjs.org

Ale…

Page 24: Node.js  –  Serverside Javascript

Dziękuję za uwagę.