====== Wut? ====== * służy do budowania skalowalnych aplikacji sieciowych, wykorzystując JavaScript po stronie serwera, * używa Googlowego silnika JS - V8 (to co siedzi w przeglądarce chrome), * jest szybkie - napisane w C (V8 też w C), * przydatny jako: * serwer websocketów - czat, * upload plików, tak, żeby nie blokować serwera, * do obsługi jakichkolwiek aplikacji działających w czasie rzeczywistym, * nie jest wielowątkowy. ====== Kod, który blokuje a kod, który nie blokuje ====== Kod przetwarzany jest jedna linia po drugiej. var contents = fs.readFileSync('/root/al_bundy_quotes.txt'); console.log(contents); console.log('Do something else'); Kod zacznie wczytywać mądrości oraz robić "coś innego". Gdy skończy ładować wiedzę, wyświetli jej zawartość. fs.readFile('/root/al_bundy_quotes.txt', function(err, contents) { console.log(contents); }); console.log('Doing something else'); ====== Wydarzenia ====== * Wiele obiektów w Node, generuje zdarzenia, * zdarzenia te mogą być dziedziczone z ''EventEmitter'', * klasa ''net.Server'' generuje zdarzenie ''request'', * klasa ''fs.readStream'' generuje zdarzenie ''data'', * możemy tworzyć własne zdarzenia: