Сервер талын JavaScript Node.js 16.0 хувилбар

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-ийн шинэ төхөөрөмжүүдэд зориулсан угсралтын ажил эхэлсэн.
  • Линукс платформ дээр хөрвүүлэгчийн хувилбарын шаардлагыг 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 болон сонгох юм. Холболтыг олон талт болгохын тулд Unix систем дээрх libev болон Windows дээрх IOCP-д зориулсан нэмэлт болох libuv номын санг ашигладаг. Libeio номын сан нь урсгалын сан үүсгэхэд ашиглагддаг, c-ares нь блоклохгүй горимд DNS асуулга явуулахад нэгтгэгддэг. Блоклоход хүргэдэг бүх системийн дуудлагууд нь урсгалын сан дотор хийгдэж, дохионы зохицуулагчид шиг нэргүй хоолойгоор (хоолой) дамжуулан ажлын үр дүнг буцааж шилжүүлдэг. 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

сэтгэгдэл нэмэх