====== 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: