Inkundla ye-JavaScript eseceleni kweseva i-Node.js 18.0 iyatholakala

I-Node.js 18.0 ikhishwe, inkundla yokusebenzisa izinhlelo zokusebenza zenethiwekhi ku-JavaScript. I-Node.js 18.0 ihlukaniswa njengegatsha lokusekela lesikhathi eside, kodwa lesi simo sizokwabelwa kuphela ngo-Okthoba, ngemva kokuzinzisa. I-Node.js 18.x izosekelwa kuze kube ngu-April 2025. Ukugcinwa kwegatsha langaphambilini le-LTS le-Node.js 16.x kuzohlala kuze kube ngu-April 2024, kanye nonyaka ngaphambi kwegatsha lokugcina le-LTS elingu-14.x kuze kube ngu-April 2023. Igatsha le-12.x LTS lizoyekiswa ukusebenza ngo-April 30, futhi igatsha lesiteji le-Node.js 17.x lizonqanyulwa ngomhlaka-1 Juni.

Ukuthuthukiswa okuyinhloko:

  • Injini ye-V8 ibuyekezelwe kunguqulo 10.1, esetshenziswa ku-Chromium 101. Uma kuqhathaniswa nokukhishwa kwe-Node.js engu-17.9.0, manje sekunokusekelwa kwezici ezifana nezindlela ze-findLast kanye ne-findLastIndex zokuthola izici ezihlobene nokuphela amalungu afanayo, nomsebenzi we-Intl.supportedValuesOf. I-Intl.Locale API ethuthukisiwe. Ukuqaliswa kwezinkambu zekilasi nezindlela eziyimfihlo kusheshisiwe.
  • I-experimental fetch() API inikwe amandla ngokuzenzakalela, yakhelwe ukulayisha izinsiza ngenethiwekhi. Ukuqaliswa kusekelwe kukhodi evela kuklayenti le-HTTP/1.1 undici futhi kuseduze ngangokunokwenzeka ku-API efanayo enikezwe kuziphequluli. Lokhu kuhlanganisa ukusekelwa kwe-FormData, Izihloko, Isicelo kanye Nezimpendulo ukuze kusetshenziswe izihloko zesicelo se-HTTP nezimpendulo. const res = lindela ukulanda('https://nodejs.org/api/documentation.json'); uma (res.ok) { const data = await res.json(); console.log(idatha); }
  • Ukuqaliswa kokuhlolwa kwe-Web Streams API kungeziwe, okunikeza ukufinyelela ekusakazweni kwedatha etholwe ngenethiwekhi. I-API yenza kube nokwenzeka ukungeza izibambi zakho ukuze usebenze ngedatha njengoba ulwazi lufika kunethiwekhi, ngaphandle kokulinda ukuthi lonke ifayela lilandwe. Izinto manje ezitholakala ku-Node.js zihlanganisa i-ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream, kanye ne-DecompressionStream.
  • I-Blob API iyiswe kuzinzile, okukuvumela ukuthi uhlanganise idatha eluhlaza engaguquleki ukuze isetshenziswe ngokuphephile kuchungechunge lwezisebenzi oluhlukene.
  • I-BroadcastChannel API yenziwe yazinza, okukuvumela ukuthi uhlele ukushintshana kwemilayezo ngemodi engavumelanisi ngefomethi ethi “umthumeli oyedwa - abaningi abamukeli”.
  • Kwengezwe inodi yemojuli yokuhlola:ukuhlola kokudala nokusebenzisa izivivinyo ku-JavaScript ebuyisela imiphumela ngefomethi ye-TAP (Test Anything Protocol).
  • Isizukulwane semihlangano esenziwe ngomumo ye-Red Hat Enterprise Linux (RHEL) 8 nokunye ukusatshalaliswa okusekelwe ku-Glibc 2.28+, okuhlanganisa i-Debian 10 ne-Ubuntu 20.04, kanye ne-macOS 10.15+ inikeziwe. Ngenxa yezinkinga ngokwakhiwa kwenjini ye-V8, ukwakhiwa kwe-32-bit builds ye-Windows kumisiwe okwesikhashana.
  • Inikeze inketho yokuhlola yokwakha i-Node.js esebenzisekayo enezingxenye ezikhethwe umsebenzisi eziqaliswe ekuqaleni. Ukuze uchaze izingxenye zokuqala, inketho ethi “--node-snapshot-main” yengezwe kusikripthi sokwakha, isibonelo, “./configure —node-snapshot-main=marked.js; igama node"

Iplatifomu ye-Node.js ingasetshenziswa kokubili ukulungisa iseva yezinhlelo zokusebenza zeWebhu kanye nokudala izinhlelo ezijwayelekile zeklayenti nenethiwekhi yeseva. Ukwandisa ukusebenza kwezinhlelo zokusebenza ze-Node.js, iqoqo elikhulu lamamojula selilungisiwe, lapho ungathola khona amamojula ngokusetshenziswa kwe-HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 amaseva namaklayenti, amamojula okuhlanganiswa. enezinhlaka ezehlukene zewebhu, izibambi ze-WebSocket ne-Ajax, izixhumi ze-DBMS (MySQL, PostgreSQL, SQLite, MongoDB), izinjini zesifanekiso, izinjini ze-CSS, ukuqaliswa kokusebenza kwe-crypto algorithms nezinhlelo zokugunyaza (OAuth), abahlaluli be-XML.

Ukuqinisekisa ukucutshungulwa kwezicelo eziningi ezifanayo, i-Node.js isebenzisa imodeli yokusebenzisa ikhodi engavumelaniyo esuselwe ekuphatheni umcimbi ongavimbi kanye nencazelo yabaphathi be-callback. Izindlela ezisekelwayo zoxhumano lokuphindaphinda i-epoll, i-kqueue, /dev/poll, bese ukhetha. Ukuze kuxhunywe ukuphindaphindeka, kusetshenziswa umtapo wezincwadi we-libuv, okuyisengezo se-libev ezinhlelweni ze-Unix kanye ne-IOCP ku-Windows. Umtapo wezincwadi we-libeio usetshenziselwa ukudala i-thread pool, ama-c-ares ahlanganiswe ukwenza imibuzo ye-DNS kumodi engavimbeli. Zonke izingcingo zesistimu ezibangela ukuvinjwa zenziwa ngaphakathi kwechibi lezintambo bese, njengezibambi zesignali, zidlulisele umphumela womsebenzi wazo ngepayipi elingashiwongo (ipayipi). Ukwenziwa kwekhodi ye-JavaScript kunikezwa ngokusetshenziswa kwenjini ye-V8 eyakhiwe i-Google (ngaphezu kwalokho, i-Microsoft ithuthukisa inguqulo ye-Node.js ngenjini ye-Chakra-Core).

Emgogodleni wayo, i-Node.js ifana nePerl AnyEvent, Ruby Event Machine, Python Twisted frameworks, kanye nokuqaliswa komcimbi we-Tcl, kodwa iluphu yomcimbi ku-Node.js ifihliwe kunjiniyela futhi ifana nokuphathwa komcimbi ohlelweni lokusebenza lwewebhu olusebenzayo. kusiphequluli. Lapho ubhala izinhlelo zokusebenza ze-node.js, udinga ukucabangela imininingwane yohlelo oluqhutshwa umcimbi, isibonelo, esikhundleni sokwenza "var result = db.query("select..");" ngokulinda ukuqedwa komsebenzi kanye nokucutshungulwa okulandelayo kwemiphumela, i-Node.js isebenzisa isimiso sokubulawa okuvumelanayo, i.e. ikhodi iguqulelwa ku-"db.query("select..", function (umphumela) {result processing});", lapho ukulawula kuzodlula khona manjalo kukhodi eqhubekayo, futhi umphumela wombuzo uzocutshungulwa njengoba idatha ifika.

Source: opennet.ru

Engeza amazwana