Հասանելի է սերվերի կողմից JavaScript հարթակ Node.js 18.0

Թողարկվել է Node.js 18.0-ը, որը հարթակ է JavaScript-ով ցանցային հավելվածները գործարկելու համար: Node.js 18.0-ը դասակարգվում է որպես երկարաժամկետ աջակցության մասնաճյուղ, սակայն այս կարգավիճակը կտրամադրվի միայն հոկտեմբերին՝ կայունացումից հետո: Node.js 18.x-ը կաջակցվի մինչև 2025 թվականի ապրիլ: Node.js 16.x-ի նախորդ LTS մասնաճյուղի սպասարկումը կտևի մինչև 2024 թվականի ապրիլը, իսկ նախորդ տարվա LTS մասնաճյուղի 14.x-ը մինչև 2023 թվականի ապրիլը: 12.x LTS մասնաճյուղը կդադարեցվի ապրիլի 30-ին, իսկ Node.js 17.x բեմականացման մասնաճյուղը կդադարեցվի հունիսի 1-ին:

Հիմնական բարելավումներ.

  • V8 շարժիչը թարմացվել է 10.1 տարբերակին, որն օգտագործվում է Chromium 101-ում: Համեմատած Node.js-ի 17.9.0-ի թողարկման հետ, այժմ աջակցություն կա այնպիսի գործառույթների, ինչպիսիք են findLast և findLastIndex մեթոդները՝ տարրերի վերջի համեմատ գտնելու համար: զանգված և Intl.supportedValuesOf ֆունկցիան։ Բարելավված Intl.Locale API: Դասի դաշտերի և մասնավոր մեթոդների սկզբնավորումն արագացվել է:
  • Փորձնական fetch() API-ն լռելյայն միացված է, որը նախատեսված է ցանցում ռեսուրսներ բեռնելու համար: Իրականացումը հիմնված է HTTP/1.1 undici հաճախորդի կոդի վրա և հնարավորինս մոտ է բրաուզերներում տրամադրված նմանատիպ API-ին: Սա ներառում է աջակցություն FormData, Headers, Request և Response միջերեսներին՝ HTTP հարցումների և պատասխանների վերնագրերը շահարկելու համար: const res = await fetch ('https://nodejs.org/api/documentation.json'); if (res.ok) {const data = await res.json(); console.log (տվյալներ); }
  • Ավելացվել է Web Streams API-ի փորձարարական ներդրում, որն ապահովում է ցանցի միջոցով ստացված տվյալների հոսքերի հասանելիություն: API-ն հնարավորություն է տալիս ավելացնել ձեր սեփական մշակողները՝ տվյալների հետ աշխատելու համար, քանի որ տեղեկատվությունը հասնում է ցանցի միջոցով՝ չսպասելով, որ ամբողջ ֆայլը ներբեռնվի: Node.js-ում այժմ հասանելի օբյեկտները ներառում են ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream և DecompressionStream:
  • Blob API-ն տեղափոխվել է կայուն՝ թույլ տալով ընդգրկել անփոփոխ չմշակված տվյալները՝ տարբեր աշխատանքային թելերում անվտանգ օգտագործման համար:
  • BroadcastChannel API-ն դարձել է կայուն՝ թույլ տալով կազմակերպել հաղորդագրությունների փոխանակումը ասինխրոն ռեժիմով՝ «մեկ ուղարկող՝ բազմաթիվ հասցեատերեր» ձևաչափով:
  • Ավելացվեց փորձարարական մոդուլի հանգույց՝ թեստ՝ JavaScript-ում թեստեր ստեղծելու և գործարկելու համար, որոնք արդյունքներ են տալիս TAP (Test Anything Protocol) ձևաչափով:
  • Տրամադրված է Red Hat Enterprise Linux (RHEL) 8-ի և Glibc 2.28+-ի վրա հիմնված այլ բաշխումների պատրաստի հավաքույթներ, ներառյալ Debian 10 և Ubuntu 20.04, ինչպես նաև macOS 10.15+: V8 շարժիչի կառուցման հետ կապված խնդիրների պատճառով Windows-ի համար 32-բիթանոց կառուցվածքների ստեղծումը ժամանակավորապես դադարեցվել է։
  • Տրամադրեց փորձնական տարբերակ՝ գործարկելու պահին օգտագործողի կողմից ընտրված բաղադրիչներով գործարկվող Node.js ստեղծելու համար: Մեկնարկային բաղադրիչները սահմանելու համար «--node-snapshot-main» տարբերակը ավելացվել է configure build script-ին, օրինակ՝ «./configure —node-snapshot-main=marked.js; անվան հանգույց»

Node.js հարթակը կարող է օգտագործվել ինչպես վեբ հավելվածների սերվերի սպասարկման, այնպես էլ սովորական հաճախորդի և սերվերի ցանցային ծրագրեր ստեղծելու համար: Node.js-ի համար հավելվածների ֆունկցիոնալությունը ընդլայնելու համար պատրաստվել է մոդուլների մեծ հավաքածու, որում կարող եք գտնել HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 սերվերների և հաճախորդների ներդրմամբ մոդուլներ, ինտեգրման մոդուլներ: տարբեր վեբ շրջանակներով, WebSocket և Ajax մշակիչներով, DBMS միակցիչներով (MySQL, PostgreSQL, SQLite, MongoDB), ձևանմուշային շարժիչներով, CSS շարժիչներով, կրիպտո ալգորիթմների և թույլտվության համակարգերի ներդրմամբ (OAuth), XML վերլուծիչներով:

Զուգահեռաբար մեծ թվով հարցումների մշակումն ապահովելու համար Node.js-ն օգտագործում է կոդի կատարման ասինխրոն մոդել, որը հիմնված է իրադարձությունների չարգելափակման մշակման և հետ կանչի մշակողների սահմանման վրա: Միացումների մուլտիպլեքսավորման աջակցվող մեթոդներն են epoll, kqueue, /dev/poll և select: Կապի մուլտիպլեքսավորման համար օգտագործվում է libuv գրադարանը, որը հավելում է libev-ի համար Unix համակարգերում և IOCP-ի համար Windows-ում: Libeio գրադարանն օգտագործվում է թելերի լողավազան ստեղծելու համար, իսկ c-ares-ը ինտեգրված է DNS հարցումները ոչ արգելափակման ռեժիմում կատարելու համար: Բոլոր համակարգային զանգերը, որոնք առաջացնում են արգելափակում, կատարվում են թելերի լողավազանի ներսում, այնուհետև, ազդանշանի մշակողների նման, իրենց աշխատանքի արդյունքը հետ են տեղափոխում անանուն խողովակի (խողովակի) միջոցով: JavaScript կոդի կատարումն ապահովվում է Google-ի կողմից մշակված V8 շարժիչի օգտագործման միջոցով (ի լրումն, Microsoft-ը մշակում է Node.js-ի տարբերակը Chakra-Core շարժիչով):

Node.js-ն իր էությամբ նման է Perl AnyEvent-ին, Ruby Event Machine-ին, Python Twisted շրջանակներին և Tcl-ի իրադարձության իրականացմանը, սակայն Node.js-ում իրադարձությունների հանգույցը թաքնված է մշակողից և հիշեցնում է իրադարձությունների մշակումը գործող վեբ հավելվածում: բրաուզերում: Node.js-ի համար հավելվածներ գրելիս պետք է հաշվի առնել իրադարձությունների վրա հիմնված ծրագրավորման առանձնահատկությունները, օրինակ՝ «var result = db.query(«select..»);» անելու փոխարեն: աշխատանքի ավարտին սպասելով և արդյունքների հետագա մշակմամբ, Node.js-ն օգտագործում է ասինխրոն կատարման սկզբունքը, այսինքն. կոդը փոխակերպվում է «db.query(«ընտրել..», ֆունկցիա (արդյունք) {արդյունքների մշակում});», որի դեպքում հսկողությունն անմիջապես կանցնի հետագա կոդի, և հարցման արդյունքը կմշակվի տվյալների ժամանումին:

Source: opennet.ru

Добавить комментарий