Node.js 16.0 гарсан нь JavaScript дээр сүлжээний програмуудыг ажиллуулах платформ юм. Node.js 16.0 нь урт хугацааны дэмжлэгийн салбар гэж ангилагдсан боловч тогтворжсоны дараа энэ статусыг зөвхөн 16.0-р сард олгоно. Node.js 2023 нь 14.0 оны дөрөвдүгээр сар хүртэл дэмжигдэх болно. Node.js 2023-ийн өмнөх LTS салбарын засвар үйлчилгээ 12.0 оны 2022-р сар хүртэл, сүүлийн LTS 10.0-ийн өмнөх жил 10 оны XNUMX-р сар хүртэл үргэлжилнэ. XNUMX LTS салбарын дэмжлэгийг XNUMX хоногийн дараа зогсооно.
Гол сайжруулалтууд:
- V8 хөдөлгүүрийг 9.0 хувилбар (Node.js 15-ыг ашигласан хувилбар 8.6) болгон шинэчилсэн бөгөөд энэ нь ердийн илэрхийлэлд зориулсан "индекс" шинж чанар (тохирох бүлгүүдийн эхлэл болон төгсгөлийн байрлал бүхий массив орно) зэрэг функцуудыг хэрэгжүүлэх боломжийг олгодог. , Node.js 16 дахь Atomics арга .waitAsync (Atomics.wait-ийн асинк хувилбар), дээд түвшний модулиудад await түлхүүр үгийг ашиглахад дэмжлэг үзүүлэх. Дамжуулсан аргументуудын тоо нь функцэд тодорхойлсон параметртэй тохирохгүй байгаа тохиолдолд функцын дуудлагыг хурдасгасан.
- Timers Promises API-г тогтворжуулж, Promise объектуудыг гаралт болгон буцаадаг таймертай ажиллах өөр багц функцээр хангасан бөгөөд энэ нь util.promisify() ашиглах шаардлагагүй болсон. 'timemer/promises'-аас { setTimeout }-г импортлох; async function run() { wait setTimeout(5000); console.log('Сайн уу, Дэлхий!'); } ажиллуулах();
- Криптограф хэшийг удирдах, тоон гарын үсэг үүсгэх, баталгаажуулах, шифрлэлтийн янз бүрийн аргуудыг ашиглан өгөгдлийг кодчилох, тайлах, криптографийн аюулгүй байдлыг бий болгох зэрэг вэб програмын тал дээр криптографийн үндсэн үйлдлүүдийг гүйцэтгэхэд зориулагдсан Web Crypto API-ийн туршилтын хэрэгжилт нэмэгдсэн. санамсаргүй тоо. API нь түлхүүрүүдийг үүсгэх, удирдах функцээр хангадаг.
- N-API (нэмэлтүүдийг хөгжүүлэх API) нь 8-р хувилбар болж шинэчлэгдсэн.
- Багц менежер NPM 7.10-ийн шинэ хувилбар руу шилжсэн.
- AbortController Web API дээр суурилсан, сонгосон Амлалтад суурилсан API-д дохиог цуцлах боломжийг олгодог AbortController ангийн хэрэгжилтийг тогтворжуулсан.
- Үүсгэсэн, боловсруулсан эсвэл багцалсан модулиудыг анхны эх кодтой харьцуулахад ашигладаг Эх газрын зургийн гурав дахь хувилбарын дэмжлэгийг тогтворжуулсан.
- Хуучин вэб API-уудтай нийцүүлэхийн тулд buffer.atob(data) болон buffer.btoa(data) аргуудыг нэмсэн.
- M1 ARM чипээр тоноглогдсон Apple-ийн шинэ төхөөрөмжүүдэд зориулсан угсралтын ажил эхэлсэн.
- Тавцан дээр 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, болон select орно. Unix систем дээрх libev болон IOCP дээрх IOCP-ийн супер багц болох libuv санг холболтын мультиплекс хийхэд ашигладаг. Windowslibeio санг thread сан үүсгэхэд ашигладаг бөгөөд c-ares нь DNS асуулга хийхээр нэгтгэгдсэн бөгөөд хаалтгүй горимд DNS асуулга гүйцэтгэх боломжтой. Бүх хаалттай системийн дуудлагууд нь thread сан дотор гүйцэтгэгдэж, дараа нь дохио боловсруулагчдын нэгэн адил үр дүнгээ нэргүй хоолойгоор буцаадаг. JavaScript гүйцэтгэлийг Google-ийн V8 хөдөлгүүрээр хангадаг (Microsoft нь мөн Chakra-Core хөдөлгүүртэй Node.js-ийн хувилбарыг боловсруулж байна).
Үндсэндээ Node.js нь Perl AnyEvent, Ruby Event Machine, Python Twisted frameworks болон 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
