Sunucu tarafı JavaScript platformu Node.js 19.0 mevcut

Ağ uygulamalarını JavaScript'te çalıştırmaya yönelik bir platform olan Node.js 19.0 piyasaya sürüldü. Node.js 19, Haziran 2023'e kadar güncellemelerin mevcut olduğu düzenli bir destek şubesidir. LTS statüsü alacak ve Nisan 18'e kadar desteklenecek olan Node.js 2025 şubesinin stabilizasyonu önümüzdeki günlerde tamamlanacak. Node.js 16.0'ın önceki LTS şubesinin bakımı Eylül 2023'e kadar, son LTS şubesi 14.0'dan önceki yılın bakımı ise Nisan 2023'e kadar sürecek.

Ana iyileştirmeler:

  • V8 motoru, Chromium 10.7'de kullanılan 107 sürümüne güncellendi. Node.js 18 şubesine kıyasla motorda yapılan değişiklikler arasında, formatRange'a yeni işlevler ekleyen Intl.NumberFormat API'sinin üçüncü sürümünün uygulanması dikkat çekiyor. (), formatRangeToParts() ve selectRange(), kümelerin gruplandırılması, yuvarlama ve kesinliğin ayarlanması için yeni seçenekler, dizeleri ondalık sayılar olarak yorumlama yeteneği. Dahil edilen llhttp 8.1.0 ve npm 8.19.2 bağımlılıkları da güncellendi.
  • İçe aktarılan dosya değiştiğinde işlemin yeniden başlatılmasını sağlayan bir izleme modunun uygulanmasıyla deneysel bir "node -watch" komutu önerilmiştir (örneğin, "node -watch index.js" yürütülürse işlem index.js değiştiğinde otomatik olarak yeniden başlatılır).
  • Tüm giden HTTP/HTTPS bağlantıları için, aynı bağlantı içinde birden fazla HTTP isteğini işlemek üzere bağlantıyı belirli bir süre açık bırakan HTTP 1.1 Canlı Tutma mekanizması desteği etkinleştirilir. Keep-Alive'ın verimi ve performansı artırması bekleniyor. Varsayılan olarak bağlantı açma zaman aşımı 5 saniyeye ayarlıdır. HTTP istemci uygulamasına sunucu yanıtlarında Keep-Alive HTTP başlığını ayrıştırma desteği eklendi ve Node.js HTTP sunucusu uygulamasına Keep-Alive kullanarak etkin olmayan istemcilerin bağlantısının otomatik olarak kesilmesi eklendi.
  • WebCrypto API, Ed25519, Ed448, X25519 ve X448 algoritmalarını kullanan işlevler haricinde kararlı kategoriye aktarılmıştır. WebCrypto modülüne erişmek için artık globalThis.crypto veya require('node:crypto').webcrypto'yu kullanabilirsiniz.
  • DTrace, SystemTap ve ETW (Windows için Olay İzleme) izleme araçlarına yönelik destek kaldırıldı; uygun bir destek planının yokluğunda güncel kalmanın karmaşıklığı nedeniyle bakımının uygun olmadığı değerlendirildi.

Node.js platformu, hem Web uygulamalarının sunucu bakımı için hem de düzenli istemci ve sunucu ağ programları oluşturmak için kullanılabilir. Node.js uygulamalarının işlevselliğini genişletmek için, içinde HTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 sunucuları ve istemcileri, entegrasyon modülleri uygulayan modüller bulabileceğiniz geniş bir modül koleksiyonu hazırlanmıştır. çeşitli web çerçeveleri, WebSocket ve Ajax işleyicileri , DBMS konektörleri (MySQL, PostgreSQL, SQLite, MongoDB), şablon oluşturma motorları, CSS motorları, kripto algoritmaları ve yetkilendirme sistemleri (OAuth), XML ayrıştırıcıları ile.

Node.js, çok sayıda paralel isteğin işlenmesini sağlamak için engellemeyen olay işlemeye ve geri arama işleyicilerinin tanımına dayalı eşzamansız bir kod yürütme modeli kullanır. Bağlantıları çoğaltmak için desteklenen yöntemler epoll, kqueue, /dev/poll ve select'tir. Bağlantı çoğullama için Unix sistemlerde libev ve Windows üzerinde IOCP için bir eklenti olan libuv kitaplığı kullanılır. libeio kitaplığı bir iş parçacığı havuzu oluşturmak için kullanılır ve c-ares, engellemesiz modda DNS sorguları gerçekleştirmek için entegre edilmiştir. Engellemeye neden olan tüm sistem çağrıları, iş parçacığı havuzunda yürütülür ve ardından, sinyal işleyiciler gibi, çalışmalarının sonucunu adsız bir kanal (boru) aracılığıyla geri aktarır. JavaScript kodunun yürütülmesi, Google tarafından geliştirilen V8 motorunun kullanılmasıyla sağlanır (ayrıca Microsoft, Chakra-Core motoruyla Node.js'nin bir sürümünü geliştirmektedir).

Node.js özünde Perl AnyEvent, Ruby Event Machine, Python Twisted çerçeveleri ve Tcl olay uygulamasına benzer, ancak Node.js'deki olay döngüsü geliştiriciden gizlenir ve çalışan bir web uygulamasındaki olay işlemeye benzer. tarayıcıda. node.js için uygulama yazarken, örneğin "var result = db.query("select..");" yapmak yerine olay güdümlü programlamanın özelliklerini göz önünde bulundurmanız gerekir. işin tamamlanmasını ve ardından sonuçların işlenmesini bekleyen Node.js, eşzamansız yürütme ilkesini kullanır, yani. kod "db.query("select..", function (result) {sonuç işleme});" biçimine dönüştürülür, burada denetim anında diğer koda geçer ve veri geldikçe sorgu sonucu işlenir.

Kaynak: opennet.ru

Yorum ekle