Сервер талын JavaScript платформ Node.js 18.0 боломжтой

JavaScript дээр сүлжээний програмуудыг ажиллуулах платформ Node.js 18.0 гарлаа. Node.js 18.0 нь урт хугацааны дэмжлэгийн салбар гэж ангилагддаг боловч тогтворжсоны дараа энэ статусыг зөвхөн 18-р сард олгоно. Node.js 2025.x нь 16 оны дөрөвдүгээр сар хүртэл дэмжигдэх болно. Node.js 2024.x-ийн өмнөх LTS салбарын засвар үйлчилгээ 14 оны 2023-р сар хүртэл, сүүлийн LTS 12.x салбарын өмнөх жил 30 оны 17-р сар хүртэл үргэлжилнэ. 1.x LTS салбар XNUMX-р сарын XNUMX-нд, Node.js XNUMX.x тайзны салбар XNUMX-р сарын XNUMX-нд зогсох болно.

Гол сайжруулалтууд:

  • V8 хөдөлгүүрийг Chromium 10.1-д ашигладаг 101 хувилбар болгон шинэчилсэн. Node.js-ийн 17.9.0 хувилбартай харьцуулахад одоо төгсгөлтэй харьцуулахад элементүүдийг олох findLast болон findLastIndex аргууд зэрэг функцуудыг дэмждэг болсон. массив болон Intl.supportedValuesOf функц. Сайжруулсан Intl.Locale API. Ангийн талбарууд болон хувийн аргуудыг эхлүүлэх ажлыг хурдасгасан.
  • Туршилтын fetch() API нь анхдагчаар идэвхжсэн бөгөөд сүлжээгээр нөөцийг ачаалахад зориулагдсан. Энэхүү хэрэгжилт нь HTTP/1.1 undici клиентийн код дээр үндэслэсэн бөгөөд хөтчүүдэд өгөгдсөн ижил төстэй API-тай аль болох ойрхон байна. Үүнд HTTP хүсэлт болон хариултын толгой хэсгийг удирдахад зориулсан FormData, Headers, Request and Response интерфейсүүдийн дэмжлэг орно. const res = хүлээж авахыг хүлээж байна('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = res.json-г хүлээж байна(); console.log(өгөгдөл); }
  • Web Streams API-ийн туршилтын хэрэгжилтийг нэмж, сүлжээгээр хүлээн авсан өгөгдлийн урсгалд хандах боломжийг олгосон. API нь файлыг бүхэлд нь татаж авахыг хүлээлгүйгээр сүлжээгээр мэдээлэл ирэх үед өгөгдөлтэй ажиллахын тулд өөрийн боловсруулагчийг нэмэх боломжийг олгодог. Node.js-д одоо ашиглах боломжтой объектуудад ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream болон DecompressionStream орно.
  • Blob API-г тогтвортой байдалд шилжүүлсэн бөгөөд энэ нь танд өөр өөр ажилчны хэлхээнд аюулгүй ашиглахын тулд өөрчлөгдөшгүй түүхий өгөгдлийг багтаах боломжийг олгоно.
  • BroadcastChannel API-ийг тогтвортой болгосон бөгөөд энэ нь "нэг илгээгч - олон хүлээн авагч" форматаар асинхрон горимд мессеж солилцох боломжийг танд олгоно.
  • Туршилтын модулийн зангилаа нэмсэн: TAP (Test Anything Protocol) форматаар үр дүнг гаргадаг JavaScript дээр тест үүсгэх, ажиллуулах тест.
  • Red Hat Enterprise Linux (RHEL) 8 болон Debian 2.28, Ubuntu 10, мөн macOS 20.04+ зэрэг Glibc 10.15+ дээр суурилсан бусад түгээлтийн бэлэн угсралтыг бий болгохоор хангасан. V8 хөдөлгүүртэй холбоотой асуудлуудын улмаас Windows-д зориулсан 32 битийн хувилбаруудыг үүсгэхийг түр зогсоосон.
  • Хэрэглэгчийн сонгосон бүрэлдэхүүн хэсгүүдийг эхлүүлэх үед эхлүүлсэн Node.js гүйцэтгэгчийг бүтээх туршилтын сонголтыг өгсөн. Эхлэх бүрэлдэхүүн хэсгүүдийг тодорхойлохын тулд "--node-snapshot-main" сонголтыг configure build скриптэд нэмсэн. Жишээ нь, "./configure —node-snapshot-main=marked.js; нэрийн зангилаа"

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("сонгох..", функц (үр дүн) {үр дүнг боловсруулах});" болгон хувиргах бөгөөд үүний дараа удирдлага нь дараагийн код руу шууд шилжих бөгөөд өгөгдөл ирэх үед асуулгын үр дүнг боловсруулах болно.

Эх сурвалж: opennet.ru

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