Izdanje JavaScript platforme na strani servera Node.js 13.0

Dostupno pustiti Node.js 13.0,platforme za pokretanje mrežnih aplikacija u JavaScript-u. Istovremeno je završena stabilizacija prethodne grane Node.js 12.x, koja je prebačena u kategoriju izdanja za dugoročnu podršku, ažuriranja za koja se objavljuju 4 godine. Podrška za prethodnu LTS granu Node.js 10.0 trajat će do aprila 2021., a podrška za posljednju LTS granu 8.0 do januara 2020. godine.

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 WebAssembly-a;
  • Potpuna podrška za internacionalizaciju i Unicode baziran na biblioteci je omogućen po defaultu ICU (Međunarodne komponente za Unicode), što omogućava programerima da pišu kod podrška rad sa različitim jezicima i lokacijama. Full-icu modul je sada instaliran po defaultu;
  • API stabiliziran Workers Threads, dozvoljavajući kreirajte višenitne petlje događaja. Implementacija se zasniva na modulu worker_threads, koji vam omogućava da pokrenete JavaScript kod u više paralelnih niti. Stabilna podrška za Workers Threads API je takođe prebačena u LTS granu Node.js 12.x;
  • Zahtjevi za platforme su povećani. Za montažu potrebno 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 sistem ima i Python 2 i Python 3, Python 2 se i dalje koristi, ali je dodana mogućnost izgradnje kada je samo Python 3 instaliran na sistemu;
  • 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();
  • Sledeće ispostavilo se ažuriranje 13.0.1, koje je brzo popravilo nekoliko grešaka. Konkretno, riješen je problem s npm 6.12.0 koji prikazuje upozorenje o korištenju nepodržane verzije.

Podsjetimo da se platforma Node.js može koristiti i za podršku web aplikacija na strani servera i za kreiranje običnih klijentskih i serverskih mrežnih programa. Za proširenje funkcionalnosti aplikacija za Node.js, veliki broj zbirka modula, u kojem se mogu pronaći moduli sa implementacijom servera i klijenata HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli za integraciju sa raznim web okvirima, WebSocket i Ajax rukovaoci, konektori za DBMS (MySQL, PostgreSQL, SQLite , MongoDB), šablonske mašine, CSS mašine, implementacije kriptografskih algoritama i sistema autorizacije (OAuth), XML parseri.

Za rukovanje velikim brojem paralelnih zahtjeva, Node.js koristi model izvršavanja asinhronog koda baziran na neblokirajućoj obradi događaja i definiranju rukovatelja povratnim pozivima. Podržane metode za multipleksiranje veza uključuju epoll, kqueue, /dev/poll i select. Biblioteka se koristi za multipleksiranje veza libuv, što je nadgradnja preko libev na Unix sistemima i preko IOCP na Windows. Biblioteka se koristi za kreiranje skupa niti libeio, za obavljanje DNS upita u neblokirajućem modu je integriran c-are. Svi sistemski pozivi koji uzrokuju blokiranje izvode se unutar spremišta niti, a zatim, poput rukovatelja signalom, prosljeđuju rezultat svog rada natrag kroz neimenovanu cijev. Izvršenje JavaScript koda je osigurano korištenjem motora koji je razvio Google V8 (Pored toga, Microsoft razvija verziju Node.js sa Chakra-Core motorom).

U svojoj srži, Node.js je sličan okvirima Perl AnyEvent, Ruby Event Machine, Python Twisted и implementacija događaje u Tcl-u, ali petlja događaja u Node.js je skrivena od programera i nalikuje rukovanju događajima u web aplikaciji koja radi u pretraživaču. Prilikom pisanja aplikacija za node.js, potrebno je uzeti u obzir specifičnosti programiranja vođenog događajima, na primjer, umjesto da radite “var result = db.query(“select..”);” sa čekanjem završetka rada i naknadnom obradom rezultata, Node.js koristi princip asinhronog izvršavanja, tj. kod se transformira u “db.query(“select..”, function (result) {result processing});”, u kojem će kontrola odmah preći na daljnji kod, a rezultat upita će se obraditi kako podaci stignu. .

izvor: opennet.ru

Dodajte komentar