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

JavaScript дээр сүлжээний програмуудыг ажиллуулах платформ Node.js 19.0 гарсан. Node.js 19 нь 2023 оны 18-р сар хүртэл шинэчлэлт хийх боломжтой байнгын дэмжлэгийн салбар юм. Ойрын өдрүүдэд Node.js 2025 салбарыг тогтворжуулах ажил дуусч, LTS статусыг авч, 16.0 оны 2023-р сар хүртэл дэмжигдэх болно. Node.js 14.0-ийн өмнөх LTS салбарын засвар үйлчилгээ 2023 оны XNUMX-р сар хүртэл, сүүлийн LTS XNUMX-ийн өмнөх жилийн XNUMX оны XNUMX-р сар хүртэл үргэлжилнэ.

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

  • V8 хөдөлгүүрийг Chromium 10.7-д ашигласан 107 хувилбар болгон шинэчилсэн. Node.js 18 салбартай харьцуулахад хөдөлгүүрт гарсан өөрчлөлтүүдийн дунд Intl.NumberFormat API-ийн гурав дахь хувилбарын хэрэгжилтийг тэмдэглэсэн бөгөөд энэ нь formatRange шинэ функцүүдийг нэмсэн. (), formatRangeToParts() болон selectRange(), багцуудыг бүлэглэх, бөөрөнхийлөх, нарийвчлалыг тохируулах шинэ сонголтууд, мөрүүдийг аравтын бутархай тоо болгон тайлбарлах чадвар. Оруулсан llhttp 8.1.0 болон npm 8.19.2 хамаарлууд мөн шинэчлэгдсэн.
  • Туршилтын "node -watch" командыг санал болгосон бөгөөд энэ нь импортын файл өөрчлөгдөх үед процессыг дахин эхлүүлэхийг баталгаажуулдаг (жишээ нь, "node -watch index.js"-г гүйцэтгэсэн бол процесс дараах болно. index.js өөрчлөгдөх үед автоматаар дахин эхлүүлнэ).
  • Бүх гарч буй HTTP/HTTPS холболтуудын хувьд HTTP 1.1 Keep-Alive механизмын дэмжлэг идэвхжсэн бөгөөд энэ нь нэг холболт дотор хэд хэдэн HTTP хүсэлтийг боловсруулахын тулд холболтыг тодорхой хугацаанд нээлттэй байлгадаг. Keep-Alive нь дамжуулах чадвар болон гүйцэтгэлийг сайжруулах болно. Анхдагч байдлаар, холболтын нээлттэй завсарлага 5 секунд байна. HTTP клиентийн хэрэгжилтэд Keep-Alive HTTP толгой хэсгийг серверийн хариултуудад задлан шинжлэхэд дэмжлэг үзүүлж, Keep-Alive ашиглан идэвхгүй харилцагчдыг автоматаар таслахыг Node.js HTTP серверийн хэрэгжилтэд нэмсэн.
  • Ed25519, Ed448, X25519, X448 алгоритмуудыг ашигладаг функцуудаас бусад тохиолдолд WebCrypto API нь тогтвортой ангилалд шилжсэн. WebCrypto модульд хандахын тулд та одоо globalThis.crypto эсвэл шаардлагатай('node:crypto').webcrypto ашиглаж болно.
  • DTrace, SystemTap болон ETW (Windows-д зориулсан Event Tracing) мөрдөх хэрэгслүүдийн дэмжлэгийг хассан бөгөөд зохих дэмжлэгийн төлөвлөгөө байхгүй үед түүнийг шинэчлэхэд төвөгтэй байсан тул засвар үйлчилгээ нь тохиромжгүй гэж үзсэн.

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

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