User Tools

Site Tools


inf:js:node

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:
     
inf/js/node.txt · Last modified: 2021/02/16 09:56 (external edit)