Icala lomncedisi we JavaScript Node.js 14.0 ukukhululwa

yathatha indawo ukukhulula Indlela yeNode 14.0, iiplatform zokuqhuba usetyenziso lwenethiwekhi kwiJavaScript. I-Node.js 14.0 lisebe lenkxaso yexesha elide, kodwa esi simo siya kunikwa kuphela ngo-Oktobha, emva kokuzinziswa. I-Node.js 14.0 iya kuxhaswa yenziwe kude kube nguAprili 2023. Ukugcinwa kwesebe langaphambili le-LTS le-Node.js 12.0 liya kuhlala kude kube ngu-Apreli 2022, kunye nonyaka ongaphambi kwesebe le-LTS lokugqibela 10.0 kude kube ngu-Apreli 2021. Inkxaso ye-13.x yesebe ekhoyo iya kuphela ngoJuni walo nyaka.

Siseko ukuphucula:

  • Ukukwazi ukuvelisa ngokubhabha okanye ekusenzekeni kweziganeko ezithile kuzinzile iingxelo zokuxilonga, ebonisa iziganeko ezinceda ukuxilonga iingxaki ezifana nokuphahlazeka, ukuchithwa komsebenzi, ukuvuza kweememori, umthwalo onzima we-CPU, ukukhutshwa kwempazamo engalindelekanga, njl.
  • Kongezwe umfuniselo API inkxaso Async Ugcino lweNdawo ngokuphunyezwa kweklasi ye-AsyncLocalStorage, engasetyenziselwa ukudala imeko engavumelaniyo kunye nabaphangi ngokusekelwe kwiifowuni zokufowunela kunye nezithembiso. I-AsyncLocalStorage ikuvumela ukuba ugcine idatha ngelixa isicelo sewebhu sisetyenzwa, sikhumbuza ukugcinwa kwentambo yendawo kwezinye iilwimi.
  • Umyalezo osisilumkiso osusiweyo malunga nenqaku lovavanyo xa ulayisha iimodyuli I-ECMAScript 6 idityaniswe kwaye ithunyelwe kumazwe angaphandle kusetyenziswa iingxelo zokungeniswa nokuthumela ngaphandle. Ngexesha elifanayo, ukuphunyezwa kweemodyuli ze-ESM ngokwazo zihlala zilingwa.
  • Injini ye-V8 ihlaziywe kuguqulelo 8.1 (1, 2, 3), equka ukulungiselelwa kokusebenza okutsha kunye neempawu ezifana nomsebenzisi omtsha wokudibanisa okunengqondo "??" (ibuyisela i-operand yasekunene ukuba i-operand yasekhohlo NULL okanye ayichazwanga, kwaye ngokuphendululekileyo), "?." ukwenzela ukujonga ngexesha elinye lonke uluhlu lweepropati okanye iifowuni (umzekelo, "db?.user?.name?.ubude" ngaphandle koqwalaselo lokuqala), indlela ye-Intl.DisplayName yokufumana amagama asekuhlaleni, njl.
  • Uhlaziyo lwe-Streams API lwenziwa, olujolise ekuphuculeni ukuhambelana kwe-Streams APIs kunye nokuphelisa ukungafani kwindlela yokuziphatha kweendawo ezisisiseko ze-Node.js. Umzekelo, ukuziphatha kwe-http.OutgoingMessage isondele kumjelo.Ibhalwe, kwaye net.Socket iyafana ne-stream.Duplex. I-autoDestroy ukhetho lusetelwe "kwinyani" ngokungagqibekanga, okuthetha ukubiza "_destroy" ekugqityweni.
  • Kongezwe umfuniselo API inkxaso UWAYI (WebAssembly System Interface), ukubonelela nge-software interfaces yokusebenzisana ngokuthe ngqo kunye nenkqubo yokusebenza (i-POSIX API yokusebenza ngeefayile, iziseko, njl.).
  • Ukunyuka kweemfuno ze iinguqulelo ezincinci abaqulunqi kunye namaqonga: macOS 10.13 (High Sierra), GCC 6, IiWindows ezintsha 7/2008R2.

Masikhumbule ukuba iqonga leNode.js lingasetyenziselwa zombini inkxaso yeseva yezicelo zeWebhu kunye nokudala umxhasi oqhelekileyo kunye neenkqubo zenethiwekhi zeseva. Ukwandisa ukusebenza kwezicelo zeNode.js, inani elikhulu le ingqokelela yeemodyuli, apho unokufumana khona iimodyuli ngokuphunyezwa kweeseva kunye nabaxhasi HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, iimodyuli zokudityaniswa nezakhelo ezahlukeneyo zewebhu, iWebSocket kunye ne-Ajax abaphathi, izixhumi kwiDBMS (MySQL, PostgreSQL, SQLite , MongoDB ), iinjini zetemplate, iinjini zeCSS, ukuphunyezwa kwe-cryptographic algorithms kunye neenkqubo zokugunyazwa (OAuth), i-XML parsers.

Ukujongana namanani amakhulu ezicelo ezifanayo, iNode.js isebenzisa imodeli yokwenziwa kwekhowudi engahambelaniyo esekwe kusingathinteli ukusetyenzwa kwesiganeko kunye nokuchaza abaphathi bokufowuna. Iindlela ezixhaswayo zoqhagamshelo lwe-multiplexing ziquka i-epoll, i-kqueue, /dev/poll, kwaye ukhethe. Ithala leencwadi lisetyenziselwa ukudityaniswa kwe-multiplex libuv, nto leyo superstructure ngaphezulu khulula kwiinkqubo ze-Unix nangaphezulu kwe-IOCP kwiWindows. Ithala leencwadi lisetyenziselwa ukwenza idibanisi yomsonto libeio, ukwenza imibuzo ye-DNS kwimo engathinteliyo idityanisiwe I-c-ares. Zonke iifowuni zesixokelelwano ezibangela ukubhloka ziyenziwa ngaphakathi kwiqula lemisonto emva koko, njengabaphangi beempawu, bagqithise isiphumo somsebenzi wabo ngombhobho ongachazwanga ngagama. Ukuphunyezwa kwekhowudi yeJavaScript kuqinisekiswa ngokusetyenziswa kwenjini ephuhliswe nguGoogle V8 (Ukongezelela, iMicrosoft iphuhlisa inguqulelo yeNode.js ngenjini yeChakra-Core).

Embindini wayo, iNode.js iyafana nesakhelo Perl AnyEvent, Umatshini woMnyhadala weRuby, IPython iJikiwe и ukuphunyezwa iziganeko kwi-Tcl, kodwa i-loop yesiganeko kwi-Node.js ifihliwe kumphuhlisi kwaye ifana nokusingatha umcimbi kwisicelo sewebhu esisebenza kwisikhangeli. Xa ubhala izicelo ze-node.js, kuyimfuneko ukuthathela ingqalelo iinkcukacha zeprogram eqhutywa yisiganeko, umzekelo, endaweni yokwenza "var result = db.query("select..");" ngokulinda ukugqitywa komsebenzi kunye nokucutshungulwa okulandelayo kweziphumo, iNode.js isebenzisa umgaqo wokwenziwa kwe-asynchronous, i.e. ikhowudi iguqulwa ibe "db.query ("khetha..", umsebenzi (isiphumo) {result processing});", apho ulawulo luya kudlula ngokukhawuleza kwikhowudi eyongezelelweyo, kwaye umphumo wombuzo uya kucutshungulwa njengoko idatha ifika. .

umthombo: opennet.ru

Yongeza izimvo