Нашри платформаи JavaScript-и сервер Node.js 16.0

Node.js 16.0 бароварда шуд, платформа барои иҷро кардани барномаҳои шабакавӣ дар JavaScript. Node.js 16.0 ҳамчун шохаи дастгирии дарозмуддат тасниф карда мешавад, аммо ин мақом танҳо дар моҳи октябр, пас аз мӯътадилшавӣ таъин карда мешавад. Node.js 16.0 то моҳи апрели соли 2023 дастгирӣ карда мешавад. Нигоҳдории филиали пешинаи LTS Node.js 14.0 то апрели соли 2023 ва як сол пеш аз филиали охирини LTS 12.0 то апрели соли 2022 давом мекунад. Дастгирии филиали 10.0 LTS пас аз 10 рӯз қатъ карда мешавад.

Такмилҳои асосӣ:

  • Муҳаррики V8 ба версияи 9.0 навсозӣ шудааст (Node.js 15 версияи 8.6 истифода шудааст), ки имкон медиҳад, ки хусусиятҳо ба монанди амволи "indexes" барои ифодаҳои муқаррарӣ (массиви дорои мавқеъҳои оғоз ва охири гурӯҳҳои мувофиқатро дар бар мегирад) , усули Atomics дар Node.js 16 .waitAsync (версияи асинхронии Atomics.wait), дастгирии истифодаи калимаи await дар модулҳои сатҳи боло. Даъватҳои функсионалӣ дар ҳолатҳое, ки шумораи аргументҳои додашуда ба параметрҳои дар функсия муайяншуда мувофиқат намекунанд, суръат мебахшанд.
  • API Timers Promises мӯътадил карда шудааст, ки маҷмӯи алтернативии функсияҳоро барои кор бо таймерҳо, ки объектҳои Promise-ро ҳамчун баромад бармегардонанд, таъмин мекунад, ки зарурати истифодаи util.promisify()-ро аз байн мебарад. воридоти { setTimeout } аз 'таймерҳо/ваъдаҳо'; функсияи асинхронӣ run() { интизори setTimeout(5000); console.log('Салом, Ҷаҳон!'); } иҷро ();
  • Татбиқи таҷрибавии Web Crypto API илова карда шудааст, ки барои иҷрои амалҳои асосии криптографӣ дар паҳлӯи замимаҳои веб тарҳрезӣ шудааст, аз қабили коркарди хэшҳои криптографӣ, тавлид ва тасдиқи имзоҳои рақамӣ, рамзгузорӣ ва рамзкушоӣ кардани маълумот бо истифода аз усулҳои гуногуни рамзгузорӣ ва тавлиди криптографии бехатар. рақамҳои тасодуфӣ. API инчунин функсияҳоро барои тавлид ва идоракунии калидҳо таъмин мекунад.
  • N-API (API барои таҳияи иловаҳо) ба версияи 8 навсозӣ шудааст.
  • Гузариш ба версияи нави менеҷери бастаи NPM 7.10 анҷом дода шуд.
  • Татбиқи синфи AbortController, ки ба API AbortController Web асос ёфтааст ва имкон медиҳад, ки сигналҳо дар API-ҳои интихобшудаи ваъдашуда бекор карда шаванд, устувор карда шуд.
  • Дастгирии версияи сеюми формати Харитаи манбаъ, ки барои муқоисаи модулҳои тавлидшуда, коркардшуда ё бастабандишуда бо рамзи аслии аслӣ истифода мешавад, устувор карда шуд.
  • Барои мутобиқат бо Web API-ҳои кӯҳна, усулҳои buffer.atob(data) ва buffer.btoa(data) илова карда шудаанд.
  • Ташаккули маҷмӯаҳо барои дастгоҳҳои нави Apple, ки бо чипи M1 ARM муҷаҳҳаз шудаанд, оғоз ёфт.
  • Дар платформаи Linux, талаботи версияи компилятор ба GCC 8.3 баланд бардошта шуд.

Ёдовар мешавем, ки платформаи 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 ва интихобро дар бар мегиранд. Барои мултиплексии пайвастшавӣ, китобхонаи libuv истифода мешавад, ки иловаи libev дар системаҳои Unix ва IOCP дар Windows мебошад. Китобхонаи libeio барои эҷоди як ҳавзи ришта истифода мешавад ва c-ares барои иҷро кардани дархостҳои DNS дар реҷаи ғайрибандӣ муттаҳид карда шудааст. Ҳама зангҳои системавӣ, ки боиси басташавӣ мешаванд, дар дохили ҳавзи ришта иҷро карда мешаванд ва сипас, ба монанди коркардкунандагони сигнал, натиҷаи кори худро тавассути қубури номаълум интиқол медиҳанд. Иҷрои рамзи JavaScript тавассути истифодаи муҳаррики V8, ки аз ҷониби Google таҳия шудааст, таъмин карда мешавад (илова бар ин, 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("интихоб..", функсия (натиҷа) {коркарди натиҷа}); табдил дода мешавад, ки дар он назорат фавран ба коди дигар мегузарад ва натиҷаи дархост ҳангоми расидани маълумот коркард мешавад.

Илова бар ин, метавон қайд кард, ки ширкати Deno, ки аз ҷониби созандаи Node.js барои таҳияи платформаи насли нави Deno таъсис ёфтааст, 4.9 миллион доллар сармоягузорӣ гирифтааст. Аз рӯи ҳадафи худ, Deno ба Node.js монанд аст, аммо он мекӯшад хатогиҳои консептуалии дар меъмории Node.js содиршударо аз байн барад ва корбаронро муҳити амнтар таъмин намояд. Қайд карда мешавад, ки қарорҳои тиҷоратии Deno бар маҳсулоти комилан кушода сохта мешаванд ва модели Open Core бо функсияҳои алоҳидаи пулакӣ барои платформаи Deno ғайри қобили қабул дониста мешавад.

Манбаъ: opennet.ru

Илова Эзоҳ