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

болсон суллах Node.js 14.0, JavaScript дээр сүлжээний програмуудыг ажиллуулах платформууд. Node.js 14.0 нь урт хугацааны дэмжлэг үзүүлэх салбар боловч энэ статусыг тогтворжуулсны дараа аравдугаар сард л олгоно. Node.js 14.0 дэмжигдэх болно гүйцэтгэнэ 2023 оны 12.0-р сар хүртэл. Node.js 2022-ийн өмнөх LTS салбарын засвар үйлчилгээ 10.0 оны 2021-р сар хүртэл, сүүлийн LTS 13-ийн өмнөх жилийн XNUMX оны XNUMX-р сар хүртэл үргэлжилнэ. XNUMX.x тайзны салбарыг дэмжих нь энэ оны зургадугаар сард дуусна.

Үндсэн сайжруулалт:

  • Шууд эсвэл тодорхой үйл явдал тохиолдсон үед үүсгэх чадвар тогтворжсон оношлогооны тайлан, энэ нь эвдрэл, гүйцэтгэлийн бууралт, санах ойн алдагдал, CPU-ийн ачаалал, гэнэтийн алдаа гаралт гэх мэт асуудлыг оношлоход тусалдаг үйл явдлуудыг харуулдаг.
  • Туршилтын API дэмжлэгийг нэмсэн Async Local Storage Буцах дуудлага, амлалтууд дээр үндэслэн зохицуулагчтай асинхрон төлөвийг бий болгоход ашиглаж болох AsyncLocalStorage классыг хэрэгжүүлснээр. AsyncLocalStorage нь вэб хүсэлтийг боловсруулж байх үед өгөгдөл хадгалах боломжийг олгодог бөгөөд энэ нь бусад хэл дээрх урсгалын дотоод хадгалалтыг санагдуулдаг.
  • Ачаалах үед туршилтын функцийн тухай анхааруулах мессежийг устгасан модулиуд ECMAScript 6 импорт, экспортын мэдэгдлийг ашиглан холбогдож, экспортолсон. Үүний зэрэгцээ ESM модулиудын хэрэгжилт нь өөрөө туршилтын хэвээр байна.
  • V8 хөдөлгүүрийг хувилбар болгон шинэчилсэн 8.1 (1, 2, 3), үүнд шинэ гүйцэтгэлийн оновчлол болон шинэ логик холболтын оператор "???" (зүүн операнд нь NULL эсвэл тодорхойгүй бол баруун операндыг буцаана, мөн эсрэгээр), "?." оператор. шинж чанарууд эсвэл дуудлагын бүхэл бүтэн гинжин хэлхээг нэг удаагийн шалгах (жишээлбэл, урьдчилсан шалгалтгүйгээр "db?.хэрэглэгч?.нэр?.урт"), локалчлагдсан нэрийг олж авах Intl.DisplayName арга гэх мэт.
  • Streams API-ийн уялдаа холбоог сайжруулах, Node.js-ийн үндсэн хэсгүүдийн үйл ажиллагааны ялгааг арилгахад чиглэсэн Streams API-д засвар хийсэн. Жишээлбэл, http.OutgoingMessage-ийн үйлдэл нь stream.Writable-тэй ойролцоо, net.Socket нь stream.Duplex-тэй төстэй. AutoDestroy сонголтыг анхдагчаар "true" гэж тохируулсан бөгөөд энэ нь дууссаны дараа "_destroy" гэж дуудна гэсэн үг юм.
  • Туршилтын API дэмжлэгийг нэмсэн WASI (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, сонгох зэрэг орно. Номын санг олон талт холболт хийхэд ашигладаг libuv, энэ нь дээр дээд бүтэц юм либев Unix системүүд дээр, Windows дээр IOCP дээр. Thread pool үүсгэхийн тулд номын санг ашигладаг libeio, блоклохгүй горимд DNS асуулга гүйцэтгэхэд зориулагдсан в-арес. Блоклоход хүргэдэг бүх системийн дуудлагууд нь урсгалын сан дотор хийгдэх ба дараа нь дохио зохицуулагчид шиг ажлын үр дүнг нэргүй хоолойгоор дамжуулдаг. JavaScript кодын гүйцэтгэлийг Google-ийн боловсруулсан хөдөлгүүрийг ашиглан баталгаажуулдаг V8 (Үүнээс гадна Microsoft нь Chakra-Core хөдөлгүүртэй Node.js хувилбарыг хөгжүүлж байна).

Үндсэндээ 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

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