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

Боломжтой суллах Node.js 13.0, JavaScript дээр сүлжээний програмуудыг ажиллуулах платформууд. Үүний зэрэгцээ Node.js 12.x-ийн өмнөх салбарыг тогтворжуулах ажил хийгдэж дууссан бөгөөд энэ нь урт хугацааны дэмжлэгийн хувилбаруудын ангилалд шилжсэн бөгөөд шинэчлэлтүүд нь 4 жилийн турш гарах болно. Node.js 10.0-ийн өмнөх LTS салбарын дэмжлэг 2021 оны 8.0-р сар хүртэл, харин сүүлийн LTS 2020-ийн дэмжлэг XNUMX оны XNUMX-р сар хүртэл үргэлжилнэ.

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

  • V8 хөдөлгүүрийг хувилбар болгон шинэчилсэн 7.8, энэ нь гүйцэтгэлийг оновчтой болгох шинэ техникийг ашигладаг, объектын бүтцийг устгах, санах ойн зарцуулалтыг бууруулж, WebAssembly-ийг гүйцэтгэхэд бэлтгэх хугацааг багасгадаг;
  • Анхдагчаар олон улсын болон номын санд суурилсан Юникодыг бүрэн дэмждэг ICU (Unicode-д зориулсан олон улсын бүрэлдэхүүн хэсгүүд) нь хөгжүүлэгчдэд код бичих боломжийг олгодог дэмжих өөр хэл, хэлээр ажиллах. Бүрэн icu модулийг одоо анхдагчаар суулгасан;
  • API тогтворжсон Ажилчдын утас, зөвшөөрөх олон урсгалтай үйл явдлын гогцоо үүсгэх. Хэрэгжилт нь worker_threads модуль дээр суурилдаг бөгөөд энэ нь танд JavaScript кодыг олон зэрэгцээ хэлхээнд ажиллуулах боломжийг олгодог. Workers Threads API-д зориулсан тогтвортой дэмжлэгийг мөн Node.js 12.x-ийн LTS салбар руу шилжүүлсэн;
  • Платформд тавигдах шаардлагыг нэмэгдүүлсэн. Одоо угсарч байна шаардлагатай наад зах нь macOS 10.11 (Xcode 10 шаардлагатай), AIX 7.2, Ubuntu 16.04, Debian 9, EL 7, Alpine 3.8, Windows 7/2008;
  • Python 3-д зориулсан сайжруулсан дэмжлэг. Хэрэв систем нь Python 2 болон Python 3-тай бол Python 2-г ашигласан хэвээр байгаа боловч систем дээр зөвхөн Python 3 суулгасан үед бүтээх чадварыг нэмсэн;
  • HTTP задлагчийн хуучин хэрэгжүүлэлт (“—http-parser=legacy”) устгагдсан. Устгасан эсвэл хуучирсан дуудлага болон шинж чанарууд FSWatcher.prototype.start(), ChildProcess._channel, ReadStream болон WriteStream объект дахь open() арга, request.connection, response.connection, module.createRequireFromPath();
  • Дараа нь гарч ирсэн 13.0.1-ийн шинэчлэлт нь хэд хэдэн алдааг хурдан зассан. Ялангуяа npm 6.12.0 дээр дэмжигдээгүй хувилбарыг ашиглах тухай сэрэмжлүүлэг харуулсан асуудал шийдэгдсэн.

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

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