Izlazak server JavaScript platforme Node.js 13.0

Na voljo izdanje Node.js 13.0, platforma za izvajanje omrežnih aplikacij v jeziku JavaScript. Hkrati je bila stabilizirana prejšnja različica Node.js 12.x, ki je prešla v kategorijo izdaj dolgotrajne podpore, katerih posodobitve so na voljo 4 leta. Podpora prejšnji LTS različici Node.js 10.0 bo trajala do aprila 2021, prejšnji LTS različici 8.0 pa do januarja 2020.

Glavne izboljšave:

  • Motor V8 je posodobljen na različico 7.8, v kateri so vključene nove metode optimizacije zmogljivosti, izboljšano razčlenjevanje objektov, zmanjšana poraba pomnilnika in skrajšan čas priprave za izvajanje WebAssembly;
  • Privzeto je vključena polna podpora za internationalizacijo in Unicode, ki temelji na knjižnicah ICU (International Components for Unicode), kar omogoča razvijalcem, da pišejo kodo, ki podpira delo z različnimi jeziki in lokalizacijami. Modul full-icu je zdaj privzeto nameščen;
  • API Workers Threads, omogoča za ustvarjanje večnitnih zank za obdelavo dogodkov (event loop). Izvedba temelji na modulu worker_threads, ki omogoča zagon JavaScript kode v več paralelnih niti. Stabilna podpora za API Workers Threads je bila prav tako prenesena v LTS različico Node.js 12.x;
  • Dvignjeni so minimalni zahteve za platforme. Za sestavljanje je zdaj je potrebno vsaj macOS 10.11 (zahteva Xcode 10), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Izboljšana podpora za Python 3. Če sta v sistemu prisotna Python 2 in Python 3, se še vedno uporablja Python 2, vendar je dodana možnost sestavljanja, če je v sistemu samo Python 3;
  • Stara izvedba HTTP-parserja ("—http-parser=legacy") je bila odstranjena. Odstranjene oziroma označene kot zastarele so klice in lastnosti FSWatcher.prototype.start(), ChildProcess._channel, metoda open() v objektih ReadStream in WriteStream, request.connection, response.connection, module.createRequireFromPath();
  • Nato je izšla posodobitev 13.0.1, ki je takoj odpravila nekaj napak. Med drugim je bila rešena težava s prikazovanjem opozorila v npm 6.12.0 o uporabi nepodprte različice.

Spomnimo, da se lahko platforma Node.js uporablja tako za strežniško podporo delovanju spletnih aplikacij, kot tudi za ustvarjanje običajnih odjemalskih in strežniških omrežnih programov. Za razširitev funkcionalnosti aplikacij za Node.js je pripravljena obsežna katalog modulov, v katerem lahko najdete Module z implementacijo strežnikov in odjemalcev HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, module za integracijo z različnimi spletnimi okviri, obdelovalnike WebSocket in Ajax, povezovalnike do DBMS (MySQL, PostgreSQL, SQLite, MongoDB), predloge, CSS motorje, implementacije kripto algoritmov in sistemov avtorizacije (OAuth), XML-parsere.

Za obdelavo velikega števila vzporednih zahtev Node.js uporablja asimetričen model izvajanja kode, ki temelji na obdelavi dogodkov v neblokirnem načinu in opredelitvi callback obdelovalnikov. Kot načini multiplexiranja povezav podpiramo metode, kot so epoll, kqueue, /dev/poll in select. Za multiplexiranje povezav se uporablja knjižnica libuv, ki je nadgradnja nad libev v sistemih Unix in nad IOCP v sistemih Windows. Za ustvarjanje nabora niti (thread pool) se uporablja knjižnica libeio, za izvajanje DNS-poizvedb v neblokirnem načinu pa je integriran c-ares. Vse sistemske klice, ki povzročajo blokado, izvajamo znotraj nabora niti in nato, kot tudi obdelovalniki signalov, pošljejo rezultate svojega dela nazaj preko neimenovane cevi (pipe). Izvajanje JavaScript kode se zagotavlja skozi vključitev motorja V8 (dodatno Microsoft razvija različico Node.js z motorjem Chakra-Core).

Essencialno je Node.js podoben okvirjem Perl AnyEvent, Ruby Event Machine, Python Twisted in implementaciji Dogodki v Tcl, vendar je krog obdelave dogodkov (event loop) v Node.js skrit pred razvijalcem in spominja na obdelavo dogodkov v spletnem aplkacijah, ki tečejo v brskalniku. Pri pisanju aplikacij za node.js je treba upoštevati specifiko dogodkovno usmerjenega programiranja, na primer namesto izvajanja „var result = db.query(„select..“);“ z čakanjem na zaključek dela in nadaljnjo obdelavo rezultatov, Node.js uporablja načelo asinhronega izvajanja, torej se koda transformira v „db.query(„select..“, function (result) {obdelava rezultata});“, pri čemer nadzor takoj preide na nadaljnjo kodo, rezultat poizvedbe pa se obdela, ko se podatki prejemajo.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster