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

Թողարկվել է Node.js 19.0-ը՝ JavaScript-ով ցանցային հավելվածների գործարկման հարթակ: Node.js 19-ը սովորական աջակցության մասնաճյուղ է, որի թարմացումները հասանելի են մինչև 2023 թվականի հունիսը: Առաջիկա օրերին կավարտվի Node.js 18 մասնաճյուղի կայունացումը, որը կստանա LTS կարգավիճակ և կաջակցվի մինչև 2025 թվականի ապրիլ։ Node.js 16.0-ի նախորդ LTS մասնաճյուղի սպասարկումը կտևի մինչև 2023 թվականի սեպտեմբերը, իսկ նախորդ տարի LTS մասնաճյուղի 14.0-ին մինչև 2023 թվականի ապրիլը:

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

  • V8 շարժիչը թարմացվել է Chromium 10.7-ում օգտագործվող 107 տարբերակին: Node.js 18 ճյուղի համեմատ շարժիչի փոփոխությունների թվում նշվում է Intl.NumberFormat API-ի երրորդ տարբերակի ներդրումը, որն ավելացնում է նոր գործառույթներ formatRange: (), formatRangeToParts() և selectRange(), բազմությունների խմբավորում, կլորացման և ճշգրտության սահմանման նոր տարբերակներ, տողերը որպես տասնորդական թվեր մեկնաբանելու ունակություն: Ներառված llhttp 8.1.0 և npm 8.19.2 կախվածությունները նույնպես թարմացվել են:
  • Առաջարկվել է փորձնական «node -watch» հրաման՝ ժամացույցի ռեժիմի ներդրմամբ, որն ապահովում է գործընթացի վերագործարկումը, երբ ներմուծված ֆայլը փոխվում է (օրինակ, եթե «node -watch index.js» գործարկվի, գործընթացը կկատարվի. ինքնաբերաբար վերագործարկվում է, երբ index.js-ը փոխվում է):
  • Բոլոր ելքային HTTP/HTTPS կապերի համար միացված է HTTP 1.1 Keep-Alive մեխանիզմի աջակցությունը, որը կապը բաց է թողնում որոշակի ժամանակ՝ նույն կապի շրջանակներում մի քանի HTTP հարցումներ մշակելու համար: Ակնկալվում է, որ Keep-Alive-ը կբարելավի թողունակությունը և կատարումը: Լռելյայնորեն, կապի բացման ժամկետը սահմանված է 5 վայրկյան: Սերվերի պատասխաններում Keep-Alive HTTP վերնագրի վերլուծության աջակցությունն ավելացվել է HTTP հաճախորդի ներդրմանը, և Keep-Alive օգտագործող ոչ ակտիվ հաճախորդների ավտոմատ անջատումը ավելացվել է Node.js HTTP սերվերի իրականացմանը:
  • WebCrypto API-ն տեղափոխվել է կայուն կատեգորիա՝ բացառությամբ Ed25519, Ed448, X25519 և X448 ալգորիթմների օգտագործող գործառույթների: WebCrypto մոդուլ մուտք գործելու համար այժմ կարող եք օգտագործել globalThis.crypto կամ require('node:crypto').webcrypto:
  • DTrace, SystemTap և ETW (Իրադարձությունների հետագծում Windows-ի համար) հետագծման գործիքների աջակցությունը հանվել է, որոնց սպասարկումը համարվել է անպատշաճ՝ համապատասխան աջակցության ծրագրի բացակայության դեպքում այն ​​թարմացնելու բարդության պատճառով:

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

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