Icala lomncedisi we JavaScript Node.js 17.0 ukukhululwa

I-Node.js 17.0, iqonga lokusebenzisa usetyenziso lwenethiwekhi kwiJavaScript, yakhululwa. I-Node.js 17.0 lisebe lenkxaso elithe rhoqo eliya kuqhubeka lifumana uhlaziyo kude kube nguJuni ka-2022. Kwiintsuku ezizayo, ukuzinziswa kwesebe le-Node.js 16 kuya kugqitywa, eliya kufumana ubume be-LTS kwaye liya kuxhaswa kude kube ngu-Apreli 2024. Ukugcinwa kwesebe langaphambili le-LTS le-Node.js 14.0 liya kuhlala kude kube ngu-Epreli 2023, kunye nonyaka ongaphambi kwesebe le-LTS lokugqibela 12.0 kude kube ngu-Apreli 2022.

Uphuculo oluphambili:

  • I-injini ye-V8 ihlaziywe kwinguqulo ye-9.5.
  • Ukuphunyezwa kokwahluka kwe-API esisiseko esekelwe ekusetyenzisweni kweSithembiso se-asynchronous computing interface iye yaqhubeka. Ukongeza kwii-Timers ezinikezelwa ngaphambili ze-Timer Promises kunye ne-Streams Promises APIs, i-Node.js 17.0 yazisa i-Readline Promise API yokufunda umgca wedatha ngomgca usebenzisa imodyuli yokufunda. ngenisa * njengomgca wokufunda ukusuka 'kwi-node:readline/promises'; ngenisa ngaphandle {stdin njengegalelo, stdout njengemveliso } ukusuka 'kwinkqubo'; const rl = readline.createInterface ({ igalelo, imveliso }); const answer = wait rl.question(‘Ucinga ntoni ngeNode.js?’); console.log(‘Enkosi ngengxelo yakho exabisekileyo: ${answer}’); rl.vala();
  • Ithala leencwadi le-OpenSSL elibonelelweyo lihlaziywe ukuba libe yinguqulo 3.0 (ifolokhwe ye-quictls/openssl enenkxaso yeprotocol ye-QUIC evuliweyo iyasetyenziswa).
  • Yenza uguqulelo lweNode.js luboniswe kulandelelwano lwemfumba olukhutshwa kwimeko yeempazamo ezibulalayo ezibangela ukuba usetyenziso lupheliswe.

Ukongezelela, sinokukhankanya ukupheliswa kobuthathaka obubini kumasebe angoku e-Node.js (CVE-2021-22959, CVE-2021-22960), eyenza kube nokwenzeka ukwenza uhlaselo lwe-"HTTP Request Smuggling" (HRS), leyo Sivumele ukuba singene kwimixholo yezicelo zabanye abasebenzisi eziqhutywe kumsonto omnye phakathi kwendawo engaphambili kunye ne-backend (umzekelo, ikhowudi yeJavaScript enobungozi inokufakwa kwiseshoni yomnye umsebenzisi). Iinkcukacha ziya kutyhilwa kamva, kodwa ngoku siyazi kuphela ukuba iingxaki zibangelwa ukuphathwa ngendlela engafanelekanga kwezithuba phakathi kwegama lentloko ye-HTTP kunye nekholoni, kunye nokuphathwa okwahlukileyo kokubuyiswa kwenqwelo kunye nabalinganiswa bokutya komgca kwibhloko yeparameter esetyenziswa xa uhambisa. Umzimba wesicelo kumalungu kwimodi "esikiweyo"

Masikhumbule ukuba iqonga leNode.js lingasetyenziselwa zombini inkxaso yecala leseva yezicelo zeWebhu kunye nokudala umxhasi oqhelekileyo kunye neenkqubo zenethiwekhi yeseva. 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, iWebSocket kunye ne-Ajax handlers , izixhumi kwi-DBMS (MySQL, PostgreSQL, SQLite, MongoDB), iinjini zetemplate, iinjini zeCSS, ukuphunyezwa kwe-cryptographic 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