Iqonga leseva yeJavaScript yeNode.js 18.0 ekhoyo

I-Node.js 18.0 yakhululwa, iqonga lokuqhuba usetyenziso lwenethiwekhi kwiJavaScript. I-Node.js 18.0 ihlelwa njengesebe lenkxaso yexesha elide, kodwa le meko iya kunikwa kuphela ngo-Oktobha, emva kokuzinziswa. I-Node.js 18.x iya kuxhaswa kude kube nguAprili 2025. Ukugcinwa kwesebe langaphambili le-LTS le-Node.js 16.x kuya kuhlala kude kube ngu-Aprili 2024, kunye nonyaka ongaphambi kwesebe le-LTS lokugqibela 14.x kude kube ngu-Apreli 2023. Isebe le-12.x LTS liya kupheliswa ngo-Apreli 30, kwaye isebe le-Node.js 17.x liya kupheliswa ngoJuni 1st.

Uphuculo oluphambili:

  • Injini ye-V8 ihlaziywe kwinguqulo ye-10.1, esetyenziswa kwi-Chromium 101. Xa kuthelekiswa nokukhululwa kwe-17.9.0 ye-Node.js, ngoku kukho inkxaso yeempawu ezifana ne-findLast kunye neendlela ze-FindLastIndex zokufumana izinto ezinxulumene nokuphela uluhlu, kunye nomsebenzi we-Intl.supportedValuesOf. Uphuculo lwe-Intl.Locale API. Ukuqaliswa kwemimandla yeklasi kunye neendlela zabucala kuye kwakhawuleziswa.
  • Umfuniselo fetch () API yenziwe ngokungagqibekanga, eyilelwe ukulayisha izixhobo kuthungelwano. Ukuphunyezwa kusekelwe kwikhowudi evela kwi-HTTP/1.1 undici client kwaye isondele kangangoko kwi-API efanayo enikwe kwiziphequluli. Oku kubandakanya inkxaso yeFomData, iiHeader, iSicelo kunye ne-Response interfaces ukwenzela ukuxhaphaza isicelo se-HTTP kunye neentloko zeempendulo. const res = linda ukulanda('https://nodejs.org/api/documentation.json'); ukuba (res.ok) { const data = linda res.json (); console.log(data); }
  • Ukuphunyezwa komfuniselo we-Web Streams API yongezwe, ibonelela ngokufikelela kwimithombo yedatha efunyenwe kwinethiwekhi. I-API yenza ukuba ukongeza abaphangi bakho ukuba basebenze ngedatha njengoko ulwazi lufika kwinethiwekhi, ngaphandle kokulinda ukuba ifayile yonke ikhutshelwe. Izinto ngoku ezifumanekayo kwiNode.js ziquka iReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, kunye neDecompressionStream.
  • I-Blob API iye yasuswa yazinza, ikuvumela ukuba udibanise idatha engatshintshiyo ekrwada yokusetyenziswa ngokukhuselekileyo kwimisonto eyahlukeneyo yabasebenzi.
  • I-BroadcastChannel API yenziwe yazinza, ikuvumela ukuba uququzelele utshintshiselwano lwemiyalezo kwimodi ye-asynchronous kwifomathi "yomthumeli - abaninzi abamkeli".
  • Imodyuli yovavanyo eyongeziweyo node:uvavanyo lokudala kunye nokuqhuba iimvavanyo kwiJavaScript ebuyisela iziphumo kwi-TAP (Vavanya Nantoni na iProtocol).
  • Ukuveliswa kweendibano esele zenziwe kwi-Red Hat Enterprise Linux (RHEL) 8 kunye nezinye izabelo ezisekelwe kwi-Glibc 2.28+, kuquka i-Debian 10 kunye ne-Ubuntu 20.04, kunye ne-macOS 10.15+ inikwe. Ngenxa yeengxaki nge-injini ye-V8 yokwakha, ukudalwa kwe-32-bit yokwakha ye-Windows kuye kwamiswa okwethutyana.
  • Ubonelele ngokhetho lokulinga ukwakha iNode.js ephunyezwayo ngamacandelo akhethwe ngumsebenzisi aqaliswe ekuqaleni. Ukuchaza amacandelo okuqala, "--node-snapshot-main" ukhetho longezwe kwiscript sobumbeko sokwakha, umzekelo, "./configure -node-snapshot-main=marked.js; indawo yegama"

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