Iqonga leseva yeJavaScript yeNode.js 20.0 ekhoyo

Ukukhutshwa kweNode.js 20.0, iqonga lokuqhuba izicelo zenethiwekhi kwiJavaScript, yenzekile. I-Node.js 20.0 yabelwe isebe lenkxaso elide, kodwa esi simo asiyi kunikwa kude kube ngu-Oktobha, emva kokuzinziswa. I-Node.js 20.x iya kuxhaswa kude kube yi-30 ka-Epreli 2026. Ukugcinwa kwesebe le-LTS le-Node.js 18.x yangaphambili kuya kuhlala kude kube ngu-Apreli 2025, kunye nesebe langaphambili le-LTS le-16.x kude kube nguSeptemba 2023. Isebe le-LTS le-14.x liya kugcinwa ngo-Aprili 30, kunye nesebe lethutyana le-Node.js 19.x ngoJuni 1.

Uphuculo oluphambili:

  • I-injini ye-V8 ihlaziywe kwi-version 11.3, esetyenziswa kwi-Chromium 113. Kutshintsho xa kuthelekiswa nesebe le-Node.js 19, elisebenzise i-injini ye-Chromium 107, i-String.prototype.isWellFormed kunye nemisebenzi ye-WellFormed, i-Array.prototype kunye neendlela ze-TypedArray.prototype ukusebenza ngekopi kutshintsho lwe-Array kunye nezinto ze-TypedArray, "v" iflegi kwi-RegExp, inkxaso yokutshintsha ubungakanani be-ArrayBuffer kunye nokwandisa ubungakanani be-SharedArrayBuffer, i-tail-call kwi-WebAssembly.
  • Kucetywa uMfuziselo weMvume yovavanyo ekuvumela ukuba uthintele ukufikelela kwimithombo ethile ngexesha lokuphunyezwa. Inkxaso yoMfanekiso weMvume yenziwe ngokucacisa iflegi "--yemvume yovavanyo" xa ibaleka. Ekuphunyezweni kokuqala, iinketho zacetyiswa ukuba zithintele ukubhala (--allow-fs-write) kwaye ufunde (--allow-fs-read) ukufikelela kwiindawo ezithile zeFS, iinkqubo zomntwana (--vumela-inkqubo-yomntwana) , izongezo (--no-addons) kunye nemisonto (--vumela-umsebenzi). Umzekelo, ukuvumela ukubhala kulawulo lwe-tmp kwaye ufunde ifayile /home/index.js, ungacacisa: indawo yovavanyo-yovavanyo-mvume--allow-fs-write=/tmp/ --allow-fs-read =/home/index.js index .js

    Ukujonga ufikelelo, kucetyiswa ukuba usebenzise inkqubo.permission.has() indlela, umzekelo, "process.permission.has('fs.write',"/tmp/test").

  • Abaphathi beemodyuli zangaphandle ze-ECMAScript (ESMs) ezilayishwe nge-"--experimental-loader" ukhetho ngoku lwenziwa kwintambo eyahlukileyo, eyodwa kumsonto oyintloko, ophelisa ukudityaniswa kwekhowudi yesicelo kunye neemodyuli ezilayishiweyo ze-ESM. Ngokufanayo nabakhangeli, i import.meta.resolve() imethodi ngoku iphunyezwa ngaxeshanye xa ibizwa ngaphakathi kwesicelo. Kwelinye lamasebe alandelayo e-Node.js, inkxaso yokulayisha i-ESM icwangciswe ukuba ihanjiswe kudidi lweempawu ezizinzileyo.
  • I-node: test (test_runner) imodyuli, eyenzelwe ukwenza kunye nokuqhuba iimvavanyo zeJavaScript ezibuyisela iziphumo kwifomethi ye-TAP (Test Anything Protocol), iye yasiwa kwi-stable.
  • Iqela lentsebenzo elahlukileyo liye lasekwa, elithe, ekulungiseleleni isebe elitsha, lisebenze ukukhawulezisa amacandelo ahlukeneyo exesha lokusebenza, kuquka i-URL parsing, fetch() kunye ne-EventTarget. Ngokomzekelo, i-overhead yokuqalisa i-EventTarget iye yahliswa ngesiqingatha, ukusebenza kwendlela ye-URL.canParse () kuphuculwe kakhulu, kwaye ukusebenza kakuhle kwezibali-xesha kuphuculwe. Ukongezelela, ukukhutshwa kwe-parser ye-URL ephezulu yokusebenza - i-Ada 2.0, ebhalwe kwi-C ++, ifakwe kwi-composition.
  • Ukuphuhliswa kwesici sovavanyo lokuhambisa izicelo ngendlela yefayile enye ephunyezwayo (i-SEA, iSicelo esiSebenzisayo esiNye) siqhubekile. Ukwenza ephunyeziweyo ngoku kufuna ukutshintshwa kweblob eyenziwe kwifayile yoqwalaselo ye-JSON (endaweni yokubeka endaweni yefayile yeJavaScript).
  • Ukuphucula ukuhambelana kweWeb Crypto API kunye nokuphunyezwa kwezinye iiprojekthi.
  • Inkxaso esemthethweni eyongeziweyo yeWindows kwiinkqubo ze-ARM64.
  • Inkxaso eqhubekayo ye-WASI (WebAssembly System Interface) izandiso zokudala izicelo ezizimeleyo zeWebAssembly. Kususwe imfuno yokucacisa iflegi yomgca womyalelo okhethekileyo ukunika inkxaso ye-WASI.

Iqonga leNode.js lingasetyenziselwa zombini ukugcinwa kweseva yezicelo zeWebhu kunye nokudala umxhasi oqhelekileyo kunye neenkqubo zenethiwekhi zeseva. Ukwandisa ukusebenza kwezicelo zeNode.js, ingqokelela enkulu yeemodyuli ilungisiwe, apho unokufumana iimodyuli kunye nokuphunyezwa kweHTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 iiseva kunye nabaxhasi, iimodyuli zokudibanisa. kunye nezakhelo ezahlukeneyo zewebhu, i-WebSocket kunye ne-Ajax abaphathi , izixhumi ze-DBMS (MySQL, PostgreSQL, SQLite, MongoDB), ii-injini ze-templates, ii-injini ze-CSS, ukuphunyezwa kwe-crypto algorithms kunye neenkqubo zokugunyazwa (OAuth), ii-XML parsers.

Ukuqinisekisa ukusetyenzwa kwenani elikhulu lezicelo ezihambelanayo, i-Node.js isebenzisa imodeli yokwenziwa kwekhowudi engahambelaniyo esekwe kulawulo lwesiganeko esingavaliyo kunye nenkcazo yabaphathi be-callback. Iindlela ezixhaswayo zoqhagamshelo lokuphinda-phinda yi epoll, kqueue, /dev/poll, kwaye ukhethe. Ukuphinda-phinda uqhagamshelo, ilayibrari ye-libuv iyasetyenziswa, eyongezo ye-libev kwiinkqubo ze-Unix kunye ne-IOCP kwi-Windows. Ilayibrari ye-libeio isetyenziselwa ukwenza i-pool pool, kwaye i-c-ares idityaniswe ukwenza imibuzo ye-DNS kwimodi yokungathinteli. Zonke iifowuni zesistim ezibangela ukuvalwa ziphunyezwa ngaphakathi kwiphuli yentambo kwaye emva koko, njengabaphangi beempawu, bagqithisele iziphumo zomsebenzi wabo ngombhobho ongachazwanga gama (umbhobho). Ukuphunyezwa kwekhowudi yeJavaScript inikezelwa ngokusetyenziswa kwe-injini ye-V8 ephuhliswe yiGoogle (ukongeza, iMicrosoft iphuhlisa inguqulelo yeNode.js nge-injini ye-Chakra-Core).

Kwisiseko sayo, i-Node.js ifana nePerl AnyEvent, i-Ruby Event Machine, i-Python Twisted frameworks, kunye nokuphunyezwa kwesiganeko se-Tcl, kodwa i-loop yesiganeko kwi-Node.js ifihliwe kumphuhlisi kwaye ifana nokusingatha umcimbi kwisicelo sewebhu esisebenzayo. kwibhrawuza. Xa ubhala izicelo ze-node.js, kufuneka uqwalasele iinkcukacha zeprogram eqhutywa yisiganeko, umzekelo, endaweni yokwenza "var result = db.query("select..");" ngokulinda ukugqitywa komsebenzi kunye nokuqhutyelwa okulandelayo kweziphumo, i-Node.js isebenzisa umgaqo wokwenziwa kwe-asynchronous, i.e. ikhowudi iguqulwa ibe yi "db.query("select..", function (isiphumo) {result processing});", apho ulawulo luya kudlula ngokukhawuleza kwikhowudi eyongezelelweyo, kwaye umphumo wombuzo uya kucutshungulwa njengoko idatha ifika.

umthombo: opennet.ru

Yongeza izimvo