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

Node.js 19.0, şəbəkə proqramlarının JavaScript-də işləməsi üçün platforma buraxıldı. Node.js 19 2023-cü ilin iyun ayına qədər yeniləmələri olan müntəzəm dəstək şöbəsidir. Yaxın günlərdə LTS statusu alacaq və 18-ci ilin aprel ayına qədər dəstəklənəcək Node.js 2025 filialının stabilləşdirilməsi başa çatacaq. Node.js 16.0-ın əvvəlki LTS filialına texniki qulluq 2023-cü ilin sentyabrına qədər, sonuncu LTS filialı 14.0-dan əvvəlki il isə 2023-cü ilin aprelinə qədər davam edəcək.

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

  • V8 mühərriki Chromium 10.7-də ​​istifadə edilən 107 versiyasına yenilənib. Node.js 18 filialı ilə müqayisədə mühərrikdə edilən dəyişikliklər arasında Intl.NumberFormat API-nin üçüncü versiyasının tətbiqi qeyd olunur ki, bu da formatRange-ə yeni funksiyalar əlavə edir. (), formatRangeToParts() və selectRange(), dəstlərin qruplaşdırılması, yuvarlaqlaşdırma və dəqiqliyi təyin etmək üçün yeni seçimlər, sətirləri onluq ədədlər kimi şərh etmək imkanı. Daxil olan llhttp 8.1.0 və npm 8.19.2 asılılıqları da yenilənib.
  • Import edilmiş fayl dəyişdikdə (məsələn, “node -watch index.js” icra edilərsə, proses yenidən başlanmasını təmin edən izləmə rejiminin tətbiqi ilə eksperimental “node -watch” əmri təklif edilmişdir. index.js dəyişdikdə avtomatik olaraq yenidən işə salınır).
  • Bütün gedən HTTP/HTTPS bağlantıları üçün HTTP 1.1 Keep-Alive mexanizminin dəstəyi aktivləşdirilib ki, bu da eyni əlaqə daxilində bir neçə HTTP sorğusunu emal etmək üçün əlaqəni müəyyən müddətə açıq qoyur. Keep-Alive-in ötürmə qabiliyyətini və performansını yaxşılaşdıracağı gözlənilir. Varsayılan olaraq, əlaqənin açıq vaxt aşımı 5 saniyəyə təyin edilmişdir. Server cavablarında Keep-Alive HTTP başlığını təhlil etmək üçün dəstək HTTP müştəri tətbiqinə əlavə edildi və Keep-Alive istifadə edərək qeyri-aktiv müştərilərin avtomatik ayrılması Node.js HTTP server tətbiqinə əlavə edildi.
  • Ed25519, Ed448, X25519 və X448 alqoritmlərindən istifadə edən funksiyalar istisna olmaqla, WebCrypto API sabit kateqoriyaya köçürülüb. WebCrypto moduluna daxil olmaq üçün siz indi globalThis.crypto-dan istifadə edə və ya tələb edə bilərsiniz('node:crypto').webcrypto.
  • DTrace, SystemTap və ETW (Windows üçün Hadisə İzləmə) izləmə alətləri üçün dəstək silindi, müvafiq dəstək planı olmadığı üçün onu müasir saxlamaq mürəkkəbliyi səbəbindən onlara qulluq qeyri-münasib hesab edildi.

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

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