Rilaxx ta' JavaScript Node.js 14.0 min-naħa tas-server

seħħet rilaxx Node.js 14.0,Pjattaformi għat-tħaddim ta' applikazzjonijiet tan-netwerk f'JavaScript. Node.js 14.0 hija fergħa ta 'appoġġ fit-tul, iżda dan l-istatus se jiġi assenjat biss f'Ottubru, wara l-istabbilizzazzjoni. Node.js 14.0 se jkun appoġġjat jitwettaq sa April 2023. Il-manutenzjoni tal-fergħa LTS preċedenti ta 'Node.js 12.0 se ddum sa April 2022, u s-sena ta' qabel l-aħħar fergħa LTS 10.0 sa April 2021. L-appoġġ għall-fergħa ta 'staging 13.x se jintemm f'Ġunju ta' din is-sena.

Il-prinċipali titjib:

  • Il-kapaċità li tiġġenera fuq il-fly jew mal-okkorrenza ta 'ċerti avvenimenti ġiet stabbilizzata rapporti dijanjostiċi, li juru avvenimenti li jgħinu biex jiġu djanjostikati problemi bħal ħabtiet, degradazzjoni tal-prestazzjoni, tnixxijiet tal-memorja, tagħbija tqila tas-CPU, output ta 'żball mhux mistenni, eċċ.
  • Miżjud appoġġ sperimentali API Ħażna Lokali Async bl-implimentazzjoni tal-klassi AsyncLocalStorage, li tista 'tintuża biex toħloq stat asinkroniku ma' handlers ibbażati fuq sejħiet u wegħdiet callback. AsyncLocalStorage jippermettilek taħżen id-dejta waqt li tkun qed tiġi pproċessata talba tal-web, li tfakkar fil-ħażna lokali tal-ħajt f'lingwi oħra.
  • Tneħħa l-messaġġ ta' twissija dwar il-karatteristika sperimentali waqt it-tagħbija moduli ECMAScript 6 konnessi u esportati bl-użu ta' dikjarazzjonijiet ta' importazzjoni u esportazzjoni. Fl-istess ħin, l-implimentazzjoni tal-moduli ESM innifisha tibqa 'esperimentali.
  • Magna V8 aġġornata għall-verżjoni 8.1 (1, 2, 3), li tinkludi ottimizzazzjonijiet u karatteristiċi ġodda tal-prestazzjoni bħall-operatur il-ġdid ta' konkatenazzjoni loġika "???" (jirritorna l-operand tal-lemin jekk l-operand tax-xellug huwa NULL jew mhux definit, u viċi versa), l-operatur "?." għal kontroll ta 'darba tal-katina kollha ta' proprjetajiet jew sejħiet (per eżempju, "db?.user?.name?.length" mingħajr kontrolli preliminari), il-metodu Intl.DisplayName għall-kisba ta 'ismijiet lokalizzati, eċċ.
  • Twettqet reviżjoni tal-API Streams, immirata biex ittejjeb il-konsistenza tal-APIs Streams u telimina d-differenzi fl-imġieba tal-partijiet bażiċi ta 'Node.js. Per eżempju, l-imġieba ta 'http.OutgoingMessage hija qrib stream.Writable, u net.Socket huwa simili għal stream.Duplex. L-għażla autoDestroy hija ssettjata bħala "veru" b'mod awtomatiku, li jfisser li ssejjaħ "_destroy" mat-tlestija.
  • Miżjud appoġġ sperimentali API WASI (WebAssembly System Interface), li jipprovdu interfaces tas-softwer għal interazzjoni diretta mas-sistema operattiva (POSIX API biex taħdem ma' fajls, sokits, eċċ.).
  • Rekwiżiti miżjuda għal verżjonijiet minimi kompilaturi u pjattaformi: macOS 10.13 (High Sierra), GCC 6, Windows aktar ġodda 7/2008R2.

Ejja nfakkru li l-pjattaforma Node.js tista 'tintuża kemm għall-appoġġ tas-server tal-applikazzjonijiet tal-Web kif ukoll għall-ħolqien ta' programmi ordinarji tan-netwerk tal-klijenti u tas-server. Biex tespandi l-funzjonalità ta 'applikazzjonijiet għal Node.js, numru kbir ta' ġbir ta' moduli, li fiha tista 'ssib moduli bl-implimentazzjoni ta' servers u klijenti HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3, moduli għall-integrazzjoni ma 'diversi oqfsa tal-web, WebSocket u Ajax handlers, konnetturi għal DBMS (MySQL, PostgreSQL, SQLite , MongoDB ), magni tal-mudelli, magni CSS, implimentazzjonijiet ta 'algoritmi kriptografiċi u sistemi ta' awtorizzazzjoni (OAuth), parsers XML.

Biex jimmaniġġa għadd kbir ta 'talbiet paralleli, Node.js juża mudell ta' eżekuzzjoni ta 'kodiċi asinkroniku bbażat fuq proċessar ta' avvenimenti li ma jimblokkax u jiddefinixxi callback handlers. Metodi appoġġjati għall-konnessjonijiet multiplexing jinkludu epoll, kqueue, /dev/poll, u select. Il-librerija hija użata biex konnessjonijiet multiplex libuv, li hija sovrastruttura fuq libev fuq sistemi Unix u fuq IOCP fuq Windows. A librerija hija użata biex tinħoloq pool ta 'ħajt libeio, għat-twettiq ta 'mistoqsijiet DNS fil-mod li ma jimblokkax huwa integrat c-ares. Is-sejħiet kollha tas-sistema li jikkawżaw l-imblukkar huma eżegwiti fil-pool tal-ħajt u mbagħad, bħal dawk li jimmaniġġjaw is-sinjali, jgħaddu r-riżultat tax-xogħol tagħhom lura minn pajp bla isem. L-eżekuzzjoni tal-kodiċi JavaScript hija żgurata permezz tal-użu ta 'magna żviluppata minn Google V8 (Barra minn hekk, Microsoft qed tiżviluppa verżjoni ta 'Node.js bil-magna Chakra-Core).

Fil-qalba tiegħu, Node.js huwa simili għal oqfsa Perl AnyEvent, Magni tal-Avveniment Ruby, Python Twisted и implimentazzjoni avvenimenti f'Tcl, iżda l-linja tal-avvenimenti f'Node.js hija moħbija mill-iżviluppatur u tixbaħ l-immaniġġjar tal-avvenimenti f'applikazzjoni tal-web li taħdem f'browser. Meta tikteb applikazzjonijiet għal node.js, huwa meħtieġ li jitqiesu l-ispeċifiċitajiet tal-programmazzjoni mmexxija mill-avvenimenti, pereżempju, minflok ma tagħmel "var result = db.query ("select..");" bl-istennija għat-tlestija tax-xogħol u l-ipproċessar sussegwenti tar-riżultati, Node.js juża l-prinċipju ta 'eżekuzzjoni asinkronika, i.e. il-kodiċi jinbidel fi "db.query ("select..", funzjoni (riżultat) {proċessar tar-riżultat});", li fih il-kontroll jgħaddi immedjatament għal aktar kodiċi, u r-riżultat tal-mistoqsija jiġi pproċessat hekk kif tasal id-data. .

Sors: opennet.ru

Żid kumment