Ukukhishwa kwe-JavaScript Node.js 14.0 eseceleni kweseva

kwenzeka ukukhululwa I-Node.js 14.0, izinkundla zokuqalisa izinhlelo zokusebenza zenethiwekhi ku-JavaScript. I-Node.js 14.0 iyigatsha elisekelayo lesikhathi eside, kodwa lesi simo sizokwabelwa kuphela ngo-Okthoba, ngemva kokuzinzisa. I-Node.js 14.0 izosekelwa kwenziwe kuze kube ngu-Ephreli 2023. Ukugcinwa kwegatsha langaphambilini le-LTS le-Node.js 12.0 kuzohlala kuze kube ngu-Ephreli 2022, kanye nonyaka ngaphambi kwegatsha le-LTS lokugcina 10.0 kuze kube ngu-Ephreli 2021. Ukwesekwa kwegatsha le-13.x kuzophela ngoJuni walo nyaka.

main ukuthuthukiswa:

  • Ikhono lokukhiqiza ngokundiza noma ekuveleni kwezehlakalo ezithile lizinzile imibiko yokuxilonga, ebonisa izehlakalo ezisiza ukuhlonza izinkinga ezifana nokuphahlazeka, ukonakala kokusebenza, ukuvuza kwenkumbulo, umthwalo osindayo we-CPU, ukuphuma kwephutha okungalindelekile, njll.
  • Kwengezwe usekelo lwe-API yokuhlola I-Async Local Storage ngokuqaliswa kwekilasi le-AsyncLocalStorage, elingasetshenziswa ukudala isimo esingavumelaniyo nezibambi ezisekelwe kumakholi we-callback nezithembiso. I-AsyncLocalStorage ikuvumela ukuthi ugcine idatha ngesikhathi isicelo sewebhu sisacutshungulwa, okusikhumbuza ukugcinwa kwendawo okunentambo kwezinye izilimi.
  • Kukhishwe umlayezo oyisixwayiso mayelana nesici sokuhlola lapho kulayishwa amamojula I-ECMAScript 6 ixhumeke futhi ithekeliswe kusetshenziswa izitatimende zokungenisa nokuthekelisa. Ngesikhathi esifanayo, ukuqaliswa kwamamojula we-ESM ngokwawo kuhlala kuwukuhlola.
  • Injini ye-V8 ibuyekezelwe enguqulweni 8.1 (1, 2, 3), okuhlanganisa ukulungiselelwa kokusebenza okusha nezici ezifana nesisebenzisi esisha sokuhlanganisa esinengqondo "??" (ibuyisela i-operand yesokudla uma i-operand yesokunxele NULL noma ingachazwanga, futhi okuphambene nalokho), u-opharetha "?." ukuze uthole isheke lesikhathi esisodwa salo lonke uchungechunge lwezakhiwo noma amakholi (isibonelo, β€œdb?.user?.name?.length” ngaphandle kokuhlolwa kokuqala), indlela ye-Intl.DisplayName yokuthola amagama enziwe endawo, njll.
  • Kubuyekezwe i-Streams API, okuhloswe ngayo ukuthuthukisa ukuvumelana kwama-Streams API kanye nokuqeda umehluko ekuziphatheni kwezingxenye eziyisisekelo ze-Node.js. Isibonelo, ukuziphatha kwe-http.OutgoingMessage kuseduze nokusakaza.Ibhaleka, futhi net.Socket iyafana ne-stream.Duplex. Inketho ye-autoDestroy isethwe kokuthi "iqiniso" ngokuzenzakalelayo, okusho ukubiza "_destroy" lapho kuqedwa.
  • Kwengezwe usekelo lwe-API yokuhlola WASI (WebAssembly System Interface), ukuhlinzeka ngezindawo zokusebenzelana zesoftware ukuze kusetshenziswe ukuxhumana okuqondile nohlelo lokusebenza (i-POSIX API yokusebenza ngamafayela, amasokhethi, njll.).
  • Izimfuneko ezengeziwe ze izinguqulo ezincane abahlanganisi nezinkundla: macOS 10.13 (High Sierra), GCC 6, I-Windows entsha 7/2008R2.

Masikhumbule ukuthi iplatifomu ye-Node.js ingasetshenziswa kokubili ukusekelwa kweseva yezinhlelo zokusebenza zeWebhu kanye nokudala izinhlelo ezijwayelekile zeklayenti nenethiwekhi yeseva. Ukwandisa ukusebenza kwezinhlelo zokusebenza ze-Node.js, inani elikhulu le ukuqoqwa kwamamojula, lapho ungathola khona amamojula ngokusetshenziswa kwamaseva namakhasimende i-HTTP, i-SMTP, i-XMPP, i-DNS, i-FTP, i-IMAP, i-POP3, amamojula okuhlanganiswa nezinhlaka ezihlukahlukene zewebhu, izibambi ze-WebSocket ne-Ajax, izixhumi ku-DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), izinjini zezifanekiso, izinjini ze-CSS, ukusetshenziswa kwama-cryptographic algorithms nezinhlelo zokugunyaza (OAuth), abahlaluli be-XML.

Ukuze isingathe izicelo eziningi ezifanayo, i-Node.js isebenzisa imodeli yokusebenzisa ikhodi engavumelani esekelwe ekucubunguleni umcimbi ongavimbeli kanye nokuchaza izibambi zokushaya ucingo. Izindlela ezisekelwayo zokuxhumanisa okuningi zifaka phakathi i-epoll, i-kqueue, /dev/poll, nokukhetha. Umtapo wolwazi usetshenziselwa ukuphindaphinda ukuxhumana libuv, okuyi-superstructure ngaphezulu khulula kumasistimu we-Unix nangaphezulu kwe-IOCP ku-Windows. Umtapo wolwazi usetshenziselwa ukwakha i-thread pool libeio, ngokwenza imibuzo ye-DNS kumodi yokungavimbi ihlanganisiwe c-abantu. Zonke izingcingo zesistimu ezibangela ukuvinjwa zenziwa ngaphakathi kwephuli yochungechunge bese, njengezibambi zesignali, zidlulise umphumela womsebenzi wazo ngepayipi elingashiwongo. Ukusetshenziswa kwekhodi ye-JavaScript kuqinisekiswa ngokusetshenziswa kwenjini ethuthukiswe i-Google V8 (Ngaphezu kwalokho, iMicrosoft yenza inguqulo ye-Node.js ngenjini ye-Chakra-Core).

Emgogodleni wayo, i-Node.js ifana nezinhlaka Perl AnyEvent, Umshini Womcimbi weRuby, I-Python Twisted ΠΈ ukuqaliswa imicimbi ku-Tcl, kodwa iluphu yomcimbi ku-Node.js ifihliwe kunjiniyela futhi ifana nokusingatha umcimbi ohlelweni lokusebenza lwewebhu olusebenza kusiphequluli. Lapho ubhala izinhlelo zokusebenza ze-node.js, kubalulekile ukucabangela imininingwane yohlelo oluqhutshwa umcimbi, isibonelo, esikhundleni sokwenza okuthi β€œvar result = db.query(β€œselect..”);” ngokulinda ukuqedwa komsebenzi kanye nokucutshungulwa okulandelayo kwemiphumela, i-Node.js isebenzisa isimiso sokwenziwa kwe-asynchronous, i.e. ikhodi iguqulelwa ku-"db.query("select..", function (umphumela) {result processing});", lapho ukulawula kuzodlula ngokushesha kukhodi eqhubekayo, futhi umphumela wombuzo uzocutshungulwa njengoba idatha ifika. .

Source: opennet.ru

Engeza amazwana