Jukwaa la JavaScript la upande wa seva Node.js 19.0 linapatikana

Node.js 19.0, jukwaa la kuendesha programu za mtandao katika JavaScript, ilitolewa. Node.js 19 ni tawi la usaidizi la kawaida na masasisho yanapatikana hadi Juni 2023. Katika siku zijazo, uimarishaji wa tawi la Node.js 18 utakamilika, ambao utapokea hali ya LTS na utasaidiwa hadi Aprili 2025. Matengenezo ya tawi la awali la LTS la Node.js 16.0 litaendelea hadi Septemba 2023, na mwaka mmoja kabla ya tawi la mwisho la LTS 14.0 hadi Aprili 2023.

Maboresho kuu:

  • Injini ya V8 imesasishwa hadi toleo la 10.7, linalotumika katika Chromium 107. Miongoni mwa mabadiliko katika injini ikilinganishwa na tawi la Node.js 18, utekelezaji wa toleo la tatu la API ya Intl.NumberFormat imebainishwa, ambayo huongeza muundo mpya wa utendakazi. (), formatRangeToParts() na selectRange(), upangaji wa seti, chaguo mpya za kuzungusha na kuweka usahihi, uwezo wa kutafsiri mifuatano kama nambari za desimali. Vitegemezi vilivyojumuishwa llhttp 8.1.0 na npm 8.19.2 pia vimesasishwa.
  • Amri ya majaribio ya "nodi -watch" imependekezwa na utekelezaji wa hali ya saa ambayo inahakikisha kwamba mchakato umeanza tena wakati faili iliyoingizwa inabadilika (kwa mfano, ikiwa "node -watch index.js" itatekelezwa, mchakato utafanyika. ilianzishwa upya kiotomatiki index.js inapobadilika).
  • Kwa miunganisho yote ya HTTP/HTTPS inayotoka, uwezo wa kutumia HTTP 1.1 Keep-Alive umewashwa, ambao huacha muunganisho wazi kwa muda fulani ili kuchakata maombi kadhaa ya HTTP ndani ya muunganisho sawa. Keep-Alive inatarajiwa kuboresha matokeo na utendakazi. Kwa chaguo-msingi, muda wa kuisha kwa muunganisho umewekwa kuwa sekunde 5. Usaidizi wa kuchanganua kichwa cha Keep-Alive HTTP katika majibu ya seva umeongezwa kwa utekelezaji wa mteja wa HTTP, na uondoaji wa kiotomatiki wa wateja ambao haufanyi kazi kwa kutumia Keep-Alive umeongezwa kwenye utekelezaji wa seva ya Node.js HTTP.
  • API ya WebCrypto imehamishiwa kwenye kategoria thabiti, isipokuwa kazi zinazotumika kwa kutumia algoriti za Ed25519, Ed448, X25519 na X448. Ili kufikia moduli ya WebCrypto sasa unaweza kutumia globalThis.crypto au kuhitaji(‘node:crypto’).webcrypto.
  • Usaidizi wa zana za kufuatilia za DTrace, SystemTap na ETW (Ufuatiliaji wa Tukio kwa Windows) umeondolewa, urekebishaji ambao ulionekana kuwa haufai kwa sababu ya ugumu wa kuisasisha kwa kukosekana kwa mpango unaofaa wa usaidizi.

Jukwaa la Node.js linaweza kutumika kwa usaidizi wa upande wa seva wa programu za Wavuti, na kwa kuunda programu za mtandao za mteja na seva. Ili kupanua utendakazi wa programu za Node.js, mkusanyiko mkubwa wa moduli umeandaliwa, ambayo unaweza kupata moduli na utekelezaji wa HTTP, SMTP, XMPP, DNS, FTP, IMAP, seva za POP3 na wateja, moduli za ujumuishaji. yenye mifumo mbalimbali ya wavuti, vidhibiti vya WebSocket na Ajax , viunganishi vya DBMS (MySQL, PostgreSQL, SQLite, MongoDB), injini za violezo, injini za CSS, utekelezaji wa algoriti za kriptografia na mifumo ya uidhinishaji (OAuth), vichanganuzi vya XML.

Ili kushughulikia idadi kubwa ya maombi sawia, Node.js hutumia muundo wa utekelezaji wa msimbo usiolingana kulingana na uchakataji wa tukio lisilozuia na kufafanua vidhibiti vya urejeshaji simu. Mbinu zinazotumika za miunganisho ya kuzidisha ni pamoja na epoll, kqueue, /dev/poll, na select. Kwa uunganisho wa kuzidisha, maktaba ya libuv hutumiwa, ambayo ni nyongeza ya libev kwenye mifumo ya Unix na kwa IOCP kwenye Windows. Maktaba ya libeio inatumiwa kuunda mkusanyiko wa nyuzi, na c-ares imeunganishwa kutekeleza hoja za DNS katika hali isiyozuia. Simu zote za mfumo zinazosababisha kuzuia hutekelezwa ndani ya dimbwi la nyuzi kisha, kama vidhibiti vya mawimbi, hupitisha matokeo ya kazi yao kupitia bomba lisilo na jina. Utekelezaji wa msimbo wa JavaScript unahakikishwa kupitia matumizi ya injini ya V8 iliyotengenezwa na Google (kwa kuongeza, Microsoft inatengeneza toleo la Node.js kwa injini ya Chakra-Core).

Kwa msingi wake, Node.js ni sawa na Perl AnyEvent, Ruby Event Machine, mifumo ya Python Twisted na utekelezaji wa matukio katika Tcl, lakini kitanzi cha tukio katika Node.js kimefichwa kutoka kwa msanidi programu na kinafanana na usindikaji wa tukio katika programu ya wavuti. inayoendesha katika kivinjari. Wakati wa kuandika programu za node.js, ni muhimu kuzingatia mahususi ya programu inayoendeshwa na tukio, kwa mfano, badala ya kufanya "var result = db.query("chagua..");" kwa kusubiri kukamilika kwa kazi na usindikaji unaofuata wa matokeo, Node.js hutumia kanuni ya utekelezaji wa asynchronous, i.e. msimbo hubadilishwa kuwa "db.query("chagua..", chaguo la kukokotoa (matokeo) {uchakataji wa matokeo});", ambapo udhibiti utapita mara moja hadi kwenye msimbo zaidi, na matokeo ya hoja yatachakatwa data inapowasili.

Chanzo: opennet.ru

Kuongeza maoni