Server tərəfində JavaScript platforması Node.js 18.0 mövcuddur

Node.js 18.0 buraxıldı, şəbəkə proqramlarını JavaScript-də işlətmək üçün platforma. Node.js 18.0 uzunmüddətli dəstək şöbəsi kimi təsnif edilir, lakin bu status sabitləşmədən sonra yalnız oktyabr ayında təyin ediləcək. Node.js 18.x 2025-ci ilin aprel ayına qədər dəstəklənəcək. Node.js 16.x-in əvvəlki LTS filialına texniki qulluq 2024-cü ilin aprelinə qədər, sonuncu LTS filialının 14.x-dən əvvəlki il isə 2023-cü ilin aprelinə qədər davam edəcək. 12.x LTS filialı aprelin 30-da, Node.js 17.x quruluş bölməsi isə iyunun 1-də dayandırılacaq.

Əsas təkmilləşdirmələr:

  • V8 mühərriki Chromium 10.1-də istifadə edilən 101 versiyasına yenilənib. Node.js-in 17.9.0 buraxılışı ilə müqayisədə indi elementlərin sonuna nisbətən tapmaq üçün findLast və findLastIndex metodları kimi funksiyalar dəstəklənir. massiv və Intl.supportedValuesOf funksiyası. Təkmilləşdirilmiş Intl.Locale API. Sinif sahələrinin və özəl metodların işə salınması sürətləndirilib.
  • Eksperimental fetch() API defolt olaraq aktivləşdirilib, resursların şəbəkə üzərində yüklənməsi üçün nəzərdə tutulub. Tətbiq HTTP/1.1 unci müştəri koduna əsaslanır və brauzerlərdə təqdim olunan oxşar API-yə mümkün qədər yaxındır. Buraya HTTP sorğusu və cavab başlıqlarını manipulyasiya etmək üçün FormData, Başlıqlar, Sorğu və Cavab interfeysləri üçün dəstək daxildir. const res = alınmasını gözləyin('https://nodejs.org/api/documentation.json'); if (res.ok) { const data = gözləyin res.json(); console.log(data); }
  • Şəbəkə üzərindən alınan məlumat axınlarına çıxışı təmin edən Web Streams API-nin eksperimental tətbiqi əlavə edilmişdir. API bütün faylın endirilməsini gözləmədən məlumatın şəbəkə üzərindən daxil olması ilə bağlı məlumatlarla işləmək üçün öz işləyicilərinizi əlavə etməyə imkan verir. İndi Node.js-də mövcud olan obyektlərə ReadableStream*, TransformStream*, WritableStream*, TextEncoderStream, TextDecoderStream, CompressionStream və DecompressionStream daxildir.
  • Blob API stabil vəziyyətə köçürüldü, bu, müxtəlif işçi mövzularında təhlükəsiz istifadə üçün dəyişməz xam məlumatları əhatə etməyə imkan verir.
  • BroadcastChannel API stabilləşdirilmişdir ki, bu da "bir göndərən - bir çox alıcı" formatında asinxron rejimdə mesaj mübadiləsini təşkil etməyə imkan verir.
  • Əlavə edilmiş eksperimental modul node: TAP (Test Anything Protocol) formatında nəticələr verən JavaScript-də testlərin yaradılması və icrası üçün test.
  • Red Hat Enterprise Linux (RHEL) 8 və Debian 2.28 və Ubuntu 10 daxil olmaqla, Glibc 20.04+ əsasında, həmçinin macOS 10.15+ üçün digər paylanmalar üçün hazır birləşmələrin yaradılması təmin edilir. V8 mühərrikinin qurulması ilə bağlı problemlərə görə, Windows üçün 32-bit quruluşların yaradılması müvəqqəti olaraq dayandırıldı.
  • Başlanğıcda istifadəçi tərəfindən seçilmiş komponentlərlə icra olunan Node.js qurmaq üçün eksperimental seçim təqdim edildi. Başlanğıc komponentləri müəyyən etmək üçün konfiqurasiya qurma skriptinə “--node-snapshot-main” seçimi əlavə edilmişdir, məsələn, “./configure —node-snapshot-main=marked.js; ad qovşağı"

Node.js platforması həm Veb proqramların serverə texniki xidməti, həm də müntəzəm müştəri və server şəbəkə proqramlarının yaradılması üçün istifadə edilə bilər. Node.js üçün proqramların funksionallığını genişləndirmək üçün böyük modullar toplusu hazırlanmışdır ki, burada HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 serverləri və müştəriləri, inteqrasiya modulları həyata keçirən modulları tapa bilərsiniz. müxtəlif veb çərçivələri, WebSocket və Ajax işləyiciləri, DBMS konnektorları (MySQL, PostgreSQL, SQLite, MongoDB), şablonlaşdırma mühərrikləri, CSS mühərrikləri, kripto alqoritmlərinin və avtorizasiya sistemlərinin (OAuth) həyata keçirilməsi, XML analizatorları ilə.

Çoxlu sayda paralel sorğuların işlənməsini təmin etmək üçün Node.js bloklanmayan hadisələrin idarə edilməsinə və geri çağırış işləyicilərinin tərifinə əsaslanan asinxron kod icra modelindən istifadə edir. Əlaqələrin multipleksləşdirilməsi üçün dəstəklənən üsullar epoll, kqueue, /dev/poll və select-dir. Bağlantının multipleksləşdirilməsi üçün Unix sistemlərində libev və Windows-da IOCP üçün əlavə olan libuv kitabxanasından istifadə olunur. Libeio kitabxanası mövzu hovuzu yaratmaq üçün istifadə olunur və c-ares bloklanmayan rejimdə DNS sorğularını yerinə yetirmək üçün inteqrasiya olunur. Bloklamaya səbəb olan bütün sistem çağırışları iplik hovuzunun daxilində yerinə yetirilir və sonra, siqnal işləyiciləri kimi, işlərinin nəticəsini adsız boru (boru) vasitəsilə geri köçürür. JavaScript kodunun icrası Google tərəfindən hazırlanmış V8 mühərrikinin istifadəsi ilə təmin edilir (bundan əlavə, Microsoft, Chakra-Core mühərriki ilə Node.js versiyasını hazırlayır).

Özündə Node.js Perl AnyEvent, Ruby Event Machine, Python Twisted çərçivələri və Tcl hadisə tətbiqinə bənzəyir, lakin Node.js-dəki hadisə dövrəsi tərtibatçıdan gizlədilib və işləyən veb proqramında hadisələrin idarə edilməsinə bənzəyir. brauzerdə. node.js üçün proqramlar yazarkən, məsələn, "var nəticə = db.query("select..");" yerinə yetirmək əvəzinə, hadisəyə əsaslanan proqramlaşdırmanın xüsusiyyətlərini nəzərə almalısınız. işin tamamlanmasını və nəticələrin sonradan işlənməsini gözləməklə, Node.js asinxron icra prinsipindən istifadə edir, yəni. kod "db.query("seç..", funksiya (nəticə) {nəticənin işlənməsi});"-a çevrilir, burada idarəetmə dərhal sonrakı koda keçəcək və sorğunun nəticəsi məlumat gələn kimi işlənəcək.

Mənbə: opennet.ru

Добавить комментарий