Ukukhishwa kwe-JavaScript Node.js 17.0 eseceleni kweseva

I-Node.js 17.0, inkundla yokusebenzisa izinhlelo zokusebenza zenethiwekhi ku-JavaScript, yakhululwa. I-Node.js 17.0 iyigatsha elivamile elisekelayo elizoqhubeka nokuthola izibuyekezo kuze kube uJuni 2022. Ezinsukwini ezizayo, ukuzinza kwegatsha le-Node.js 16 kuzoqedwa, elizothola isimo se-LTS futhi lizosekelwa kuze kube ngu-April 2024. Ukugcinwa kwegatsha langaphambilini le-LTS le-Node.js 14.0 kuzohlala kuze kube ngu-Ephreli 2023, kanye nonyaka ngaphambi kwegatsha lokugcina le-LTS 12.0 kuze kube ngu-Ephreli 2022.

Ukuthuthukiswa okuyinhloko:

  • Injini ye-V8 ithuthukiswe yaba yinguqulo engu-9.5.
  • Ukuqaliswa kokuhlukahluka kwe-API eyisisekelo esekelwe ekusetshenzisweni kwesixhumi esibonakalayo sekhompuyutha ye-Promise asynchronous kuqhubekile. Ngokungeziwe kuma-API we-Timer Promises kanye nama-Streams Promises anikezwe ngaphambilini, i-Node.js 17.0 yethula i-Readline Promise API yokufunda idatha umugqa ngomugqa kusetshenziswa imojula ye-readline. import * as readline from 'node:readline/promises'; ngenisa {stdin njengokufakiwe, stdout njengokuphumayo } kusuka 'kunqubo'; const rl = readline.createInterface ({ okokufaka, okukhiphayo }); const answer = await rl.question('Ucabangani ngeNode.js?'); console.log('Siyabonga ngempendulo yakho ebalulekile: ${answer}'); rl.vala();
  • Umtapo wezincwadi we-OpenSSL ohlinzekiwe ubuyekezelwe enguqulweni engu-3.0 (imfoloko ye-quictls/openssl enokwesekwa kwephrothokholi ye-QUIC enikwe amandla iyasetshenziswa).
  • Inike amandla inguqulo ye-Node.js ukuthi iboniswe ekulandeleleni isitaki okuphumayo uma kuba namaphutha abulalayo abangela ukuthi uhlelo lokusebenza luqedwe.

Ukwengeza, singabala ukuqedwa kobungozi obubili emagatsheni amanje e-Node.js (CVE-2021-22959, CVE-2021-22960), okwenza kube nokwenzeka ukuhlasela kwe-β€œHTTP Request Smuggling” (HRS), okuyinto sivumele ukuthi singene kokuqukethwe kwezicelo zabanye abasebenzisi ezicutshungulwe kuchungechunge olufanayo phakathi kwe-frontend ne-backend (isibonelo, ikhodi ye-JavaScript enonya ingafakwa kuseshini yomunye umsebenzisi). Imininingwane izovezwa kamuva, kodwa okwamanje sazi kuphela ukuthi izinkinga zidalwa ukuphatha okungalungile kwezikhala phakathi kwegama lesihloko se-HTTP kanye nekholoni, kanye nokuphathwa okuhlukile kokubuyiswa kwenqola kanye nezinhlamvu zokuphakelayo komugqa kubhulokhi yepharamitha esetshenziswa lapho udlulisa. umzimba wesicelo ezingxenyeni zemodi "esikiwe" "

Khumbula ukuthi iplatifomu ye-Node.js ingasetshenziswa kokubili ukulungisa iseva yezinhlelo zokusebenza zeWebhu nokudala amaklayenti ajwayelekile kanye nezinhlelo zenethiwekhi 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