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

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

асосӣ беҳбудиҳо:

  • Қобилияти тавлид дар парвоз ё ҳангоми рух додани ҳодисаҳои муайян устувор карда шудааст гузоришҳои ташхис, ки рӯйдодҳоеро намоиш медиҳанд, ки барои ташхиси мушкилот, аз қабили садамаҳо, таназзули кор, ихроҷи хотира, сарбории зиёди CPU, баромади хатогиҳои ғайричашмдошт ва ғайра кӯмак мекунанд.
  • Дастгирии таҷрибавии API илова карда шуд Захираи синхронизатсияи маҳаллӣ бо татбиқи синфи AsyncLocalStorage, ки метавонад барои эҷоди ҳолати асинхронӣ бо коркардкунандагон дар асоси зангҳои бозпас ва ваъдаҳо истифода шавад. AsyncLocalStorage ба шумо имкон медиҳад, ки маълумотро ҳангоми коркарди дархости веб нигоҳ доред, ки нигоҳдории риштаи маҳаллиро бо забонҳои дигар ба ёд меорад.
  • Паёми огоҳкунанда дар бораи хусусияти озмоишӣ ҳангоми боркунӣ хориҷ карда шуд модулҳо ECMAScript 6 бо истифода аз изҳороти воридот ва содирот пайваст ва содир карда мешавад. Дар баробари ин, худи татбиқи модулҳои ESM таҷрибавӣ боқӣ мемонад.
  • Муҳаррики V8 ба версия нав карда шуд 8.1 (1, 2, 3), ки оптимизатсияи нав ва хусусиятҳои навро дар бар мегирад, ба монанди оператори нави пайвастани мантиқии "???" (агар операнди чап NULL ё номуайян бошад, операнди ростро бармегардонад ва баръакс), оператори "?." барои санҷиши якдафъаинаи тамоми занҷири хосиятҳо ё зангҳо (масалан, “db?.user?.name?.length” бидуни санҷишҳои пешакӣ), усули Intl.DisplayName барои гирифтани номҳои маҳаллӣ ва ғайра.
  • Таҷдиди Streams API анҷом дода шуд, ки ба беҳтар кардани мутобиқати Streams APIs ва рафъи фарқиятҳо дар рафтори қисмҳои асосии Node.js нигаронида шудааст. Масалан, рафтори http.OutgoingMessage ба stream.Writable наздик аст ва net.Socket ба stream.Duplex монанд аст. Опсияи autoDestroy бо нобаёнӣ ба "true" муқаррар карда шудааст, ки маънои "_destroy" -ро пас аз анҷом додан даъват мекунад.
  • Дастгирии таҷрибавии API илова карда шуд ВАСИ (Интерфейси системаи WebAssembly), таъмини интерфейсҳои нармафзор барои ҳамкории мустақим бо системаи оператсионӣ (POSIX API барои кор бо файлҳо, розеткаҳо ва ғайра).
  • Талаботи зиёд барои версияҳои ҳадди ақал компиляторҳо ва платформаҳо: macOS 10.13 (High Sierra), GCC 6, Windows навтар 7/2008R2.

Ёдовар мешавем, ки платформаи 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 ва интихобро дар бар мегиранд. Китобхона барои пайвастҳои мултиплекс истифода мешавад лиув, ки як надстройка аз болои либев дар системаҳои Unix ва бар IOCP дар Windows. Барои сохтани ҳавзи ришта китобхона истифода мешавад озодона, барои иҷрои дархостҳои DNS дар ҳолати ғайрибандӣ муттаҳид карда шудааст в-аст. Ҳама зангҳои системавӣ, ки боиси басташавӣ мешаванд, дар дохили ҳавзи ришта иҷро карда мешаванд ва сипас, ба монанди коркардкунандагони сигнал, натиҷаи кори худро тавассути қубури номаълум интиқол медиҳанд. Иҷрои рамзи JavaScript тавассути истифодаи муҳаррики аз ҷониби Google таҳияшуда таъмин карда мешавад V8 (Ғайр аз ин, Microsoft версияи Node.js-ро бо муҳаррики Chakra-Core таҳия мекунад).

Дар асл, Node.js ба чаҳорчӯбаҳо монанд аст Perl AnyEvent, Мошини рӯйдодҳои Ruby, Python Twisted и амалй гардондани рӯйдодҳо дар Tcl, аммо ҳалқаи рӯйдодҳо дар Node.js аз таҳиякунанда пинҳон аст ва ба коркарди рӯйдодҳо дар барномаи вебе, ки дар браузер кор мекунад, шабоҳат дорад. Ҳангоми навиштани замимаҳо барои node.js, масалан, ба ҷои иҷро кардани “var result = db.query(“select..”);” хусусиятҳои барномасозии ба рӯйдодҳо асосёфтаро ба назар гирифтан лозим аст. бо интизории анҷоми кор ва коркарди минбаъдаи натиҷаҳо, Node.js принсипи иҷрои асинхронӣ, яъне. код ба "db.query("интихоб..", функсия (натиҷа) {коркарди натиҷа}); табдил дода мешавад, ки дар он назорат фавран ба коди дигар мегузарад ва натиҷаи дархост ҳангоми расидани маълумот коркард мешавад. .

Манбаъ: opennet.ru

Илова Эзоҳ