Izdanje JavaScript Node.js 13.0 na strani poslužitelja

Dostupno puštanje Čvor.js 13.0,platforme za pokretanje mrežnih aplikacija u JavaScriptu. Istodobno je dovršena stabilizacija prethodne grane Node.js 12.x, koja je prebačena u kategoriju dugoročnih izdanja podrške, a ažuriranja za koja se objavljuju na 4 godine. Podrška za prethodni LTS ogranak Node.js 10.0 trajat će do travnja 2021., a podrška za posljednji LTS ogranak 8.0 do siječnja 2020.

Glavni poboljšanja:

  • V8 motor ažuriran na verziju 7.8, koji koristi nove tehnike optimizacije performansi, poboljšava destrukturiranje objekata, smanjuje potrošnju memorije i smanjuje vrijeme pripreme za izvođenje WebAssemblyja;
  • Puna podrška za internacionalizaciju i Unicode temeljen na biblioteci omogućena je prema zadanim postavkama JIL (International Components for Unicode), koji programerima omogućuje pisanje koda podupirući rad s različitim jezicima i lokalitetima. Full-icu modul sada je instaliran prema zadanim postavkama;
  • API stabiliziran Radničke niti, dopuštajući stvoriti višenitne petlje događaja. Implementacija se temelji na modulu worker_threads koji vam omogućuje pokretanje JavaScript koda u više paralelnih niti. Stabilna podrška za Workers Threads API također je vraćena u LTS granu Node.js 12.x;
  • Zahtjevi za platforme su povećani. Sada sastaviti potreban najmanje macOS 10.11 (zahtijeva Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Poboljšana podrška za Python 3. Ako sustav ima i Python 2 i Python 3, Python 2 se i dalje koristi, ali je dodana mogućnost izgradnje kada je na sustavu instaliran samo Python 3;
  • Stara implementacija HTTP parsera ("—http-parser=legacy") je uklonjena. Uklonjeni ili zastarjeli pozivi i svojstva FSWatcher.prototype.start(), ChildProcess._channel, open() metoda u objektima ReadStream i WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Slijedeći izašlo ažuriranje 13.0.1, koje je brzo popravilo nekoliko grešaka. Konkretno, problem s npm 6.12.0 koji prikazuje upozorenje o korištenju nepodržane verzije je riješen.

Podsjetimo da se Node.js platforma može koristiti i za poslužiteljsko održavanje web aplikacija i za kreiranje običnih klijentskih i poslužiteljskih mrežnih programa. Za proširenje funkcionalnosti aplikacija za Node.js, veliki zbirka modula, u kojem možete pronaći module s implementacijom HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 poslužitelja i klijenata, module za integraciju s raznim web okvirima, WebSocket i Ajax rukovatelje, konektore na DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), strojevi za predloške, CSS strojevi, implementacije kripto algoritama i sustava autorizacije (OAuth), XML parseri.

Kako bi se osigurala obrada velikog broja paralelnih zahtjeva, Node.js koristi model izvršavanja asinkronog koda koji se temelji na neblokirajućem rukovanju događajima i definiciji obrađivača povratnih poziva. Podržane metode za multipleksiranje veza su epoll, kqueue, /dev/poll i select. Knjižnica se koristi za multipleksiranje veza libuv, koji je nadgradnja nad libev na Unix sustavima i preko IOCP-a na Windowsima. Biblioteka se koristi za stvaranje skupa niti libeio, za izvođenje DNS upita u integriranom načinu rada bez blokiranja c-are. Svi sistemski pozivi koji uzrokuju blokiranje izvršavaju se unutar skupa niti i zatim, poput rukovatelja signalima, prenose rezultat svog rada natrag kroz neimenovanu cijev (pipe). Izvršenje JavaScript koda omogućeno je upotrebom mehanizma koji je razvio Google V8 (Osim toga, Microsoft razvija varijantu Node.js s pogonom Chakra-Core).

U svojoj srži, Node.js je sličan okvirima. Perl AnyEvent, Ruby Event Machine, Python Twisted и implementacija događaja u Tcl-u, ali je petlja događaja u Node.js skrivena od programera i nalikuje rukovanju događajima u web aplikaciji koja se izvodi u pregledniku. Kada pišete aplikacije za node.js, trebate uzeti u obzir specifičnosti programiranja vođenog događajima, na primjer, umjesto da radite "var result = db.query("select..");" uz čekanje završetka rada i naknadnu obradu rezultata, Node.js koristi princip asinkronog izvođenja, tj. kod se transformira u "db.query("select..", function (result) {result processing});", u kojem će kontrola trenutno prijeći na daljnji kod, a rezultat upita će se obrađivati ​​kako podaci stignu. .

Izvor: opennet.ru

Dodajte komentar