Платформаи JavaScript-и сервер Node.js 19.0 дастрас аст

Node.js 19.0, платформа барои иҷро кардани барномаҳои шабакавӣ дар JavaScript бароварда шуд. Node.js 19 як филиали мунтазами дастгирӣ бо навсозиҳо то моҳи июни соли 2023 дастрас аст. Дар рӯзҳои наздик мӯътадилсозии филиали Node.js 18 ба анҷом мерасад, ки мақоми LTS мегирад ва то моҳи апрели соли 2025 дастгирӣ мешавад. Нигоҳдории филиали пешинаи LTS Node.js 16.0 то сентябри соли 2023 ва як сол пеш аз филиали охирини LTS 14.0 то апрели соли 2023 давом мекунад.

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

  • Муҳаррики V8 ба версияи 10.7 навсозӣ шудааст, ки дар Chromium 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 сония муқаррар карда шудааст. Дастгирии таҳлили сарлавҳаи HTTP-и Keep-Alive дар посухҳои сервер ба татбиқи мизоҷи HTTP илова карда шудааст ва ба татбиқи сервери HTTP Node.js қатъкунии автоматии муштариёни ғайрифаъол бо истифода аз Keep-Alive илова карда шудааст.
  • WebCrypto API ба категорияи устувор гузаронида шуд, ба истиснои функсияҳо бо истифода аз алгоритмҳои Ed25519, Ed448, X25519 ва X448. Барои дастрасӣ ба модули WebCrypto шумо ҳоло метавонед globalThis.crypto-ро истифода баред ё талаб кунед('гиреҳ:crypto').webcrypto.
  • Дастгирии абзорҳои пайгирии DTrace, SystemTap ва ETW (Tracing Event for 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 ва интихобро дар бар мегиранд. Барои мултиплексии пайвастшавӣ, китобхонаи 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("интихоб..", функсия (натиҷа) {коркарди натиҷа}); табдил дода мешавад, ки дар он назорат фавран ба коди дигар мегузарад ва натиҷаи дархост ҳангоми расидани маълумот коркард мешавад.

Манбаъ: opennet.ru

Илова Эзоҳ