Sunucu taraflı JavaScript Node.js 14.0 sürümü

gerçekleşti serbest Düğüm.js 14.0Ağ uygulamalarını JavaScript'te çalıştırmak için platformlar. Node.js 14.0 uzun vadeli bir destek şubesidir ancak bu durum ancak Ekim ayında stabilizasyondan sonra atanacaktır. Node.js 14.0 desteklenecek yapılmak Nisan 2023'e kadar. Node.js 12.0'ın önceki LTS şubesinin bakımı Nisan 2022'ye kadar, son LTS şubesi 10.0'dan önceki yılın bakımı ise Nisan 2021'e kadar sürecek. 13.x evreleme şubesine yönelik destek bu yılın haziran ayında sona erecek.

Ana iyileştirmeler:

  • Anında veya belirli olayların meydana gelmesi üzerine üretim yapma yeteneği stabilize edildi teşhis raporlarıÇökmeler, performans düşüşü, bellek sızıntıları, ağır CPU yükü, beklenmeyen hata çıktısı vb. gibi sorunları teşhis etmeye yardımcı olan olayları görüntüleyen olaylar.
  • Deneysel API desteği eklendi Eşzamansız Yerel Depolama Geri arama çağrılarına ve vaatlere dayalı olarak işleyicilerle eşzamansız durum oluşturmak için kullanılabilen AsyncLocalStorage sınıfının uygulanmasıyla. AsyncLocalStorage, diğer dillerdeki yerel iş parçacığı depolamayı hatırlatan bir web isteği işlenirken verileri depolamanıza olanak tanır.
  • Yükleme sırasında deneysel özellik hakkındaki uyarı mesajı kaldırıldı modüller ECMAScript'i 6 içe ve dışa aktarma ifadeleri kullanılarak bağlanır ve dışa aktarılır. Aynı zamanda ESM modüllerinin uygulanması deneysel olmaya devam etmektedir.
  • V8 motoru sürüme güncellendi 8.1 (1, 2, 3), yeni performans iyileştirmelerini ve yeni mantıksal birleştirme operatörü "??" gibi özellikleri içerir. (sol işlenen NULL veya tanımsız ise veya tam tersi ise sağ işleneni döndürür), "?" operatörü özellikler veya çağrılar zincirinin tamamının tek seferlik kontrolü için (örneğin, ön kontroller olmadan "db?.user?.name?.length"), yerelleştirilmiş adların elde edilmesi için Intl.DisplayName yöntemi vb.
  • Streams API'lerinin tutarlılığını iyileştirmeyi ve Node.js'nin temel bölümlerinin davranışındaki farklılıkları ortadan kaldırmayı amaçlayan bir Streams API revizyonu gerçekleştirildi. Örneğin, http.OutgoingMessage'ın davranışı,stream.Writable'a yakındır ve net.Socket,stream.Duplex'e benzer. AutoDestroy seçeneği varsayılan olarak "true" olarak ayarlanmıştır; bu, tamamlandığında "_destroy" öğesinin çağrılması anlamına gelir.
  • Deneysel API desteği eklendi ÖYLE MİYDİM (WebAssembly Sistem Arayüzü), işletim sistemiyle doğrudan etkileşim için yazılım arayüzleri sağlamak (dosyalar, soketler vb. ile çalışmak için POSIX API).
  • Artan gereksinimler minimum sürümler derleyiciler ve platformlar: macOS 10.13 (High Sierra), GCC 6, Windows daha yeni 7/2008R2.

Node.js platformunun hem Web uygulamalarının sunucu desteği için hem de sıradan istemci ve sunucu ağ programlarının oluşturulması için kullanılabileceğini hatırlatalım. Node.js uygulamalarının işlevselliğini genişletmek için çok sayıda modüllerin toplanmasıHTTP, SMTP, XMPP, DNS, FTP, IMAP, POP3 sunucuları ve istemcilerinin uygulanmasına sahip modüller, çeşitli web çerçeveleriyle entegrasyon modülleri, WebSocket ve Ajax işleyicileri, DBMS konektörleri (MySQL, PostgreSQL, SQLite) bulabileceğiniz modüller , MongoDB ), şablon motorları, CSS motorları, şifreleme algoritmalarının ve yetkilendirme sistemlerinin (OAuth) uygulamaları, XML ayrıştırıcıları.

Çok sayıda paralel isteği işlemek için Node.js, engellemeyen olay işlemeyi ve geri çağrı işleyicilerini tanımlamayı temel alan eşzamansız bir kod yürütme modeli kullanır. Bağlantıları çoğullamak için desteklenen yöntemler arasında epoll, kqueue, /dev/poll ve select bulunur. Kütüphane bağlantıları çoğaltmak için kullanılır libuvüzerinde bir üst yapı olan libev Unix sistemlerinde ve Windows'ta IOCP üzerinden. Bir iş parçacığı havuzu oluşturmak için bir kitaplık kullanılır özgürlük, DNS sorgularını engellemesiz modda gerçekleştirmek için entegre edilmiştir c-ares. Engellemeye neden olan tüm sistem çağrıları iş parçacığı havuzunda yürütülür ve daha sonra sinyal işleyiciler gibi çalışmalarının sonucunu isimsiz bir kanaldan geri iletir. JavaScript kodunun yürütülmesi, Google tarafından geliştirilen bir motor kullanılarak sağlanır. V8 (Ayrıca Microsoft, Chakra-Core motoruyla Node.js'nin bir sürümünü geliştiriyor).

Node.js özünde çerçevelere benzer Perl AnyEvent, Yakut Etkinlik Makinesi, Piton Bükülmüş и uygulama Tcl'deki olaylar, ancak Node.js'deki olay döngüsü geliştiriciden gizlenir ve tarayıcıda çalışan bir web uygulamasındaki olay işlemeye benzer. Node.js için uygulamalar yazarken, örneğin “var result = db.query(“select..”);” yapmak yerine olaya dayalı programlamanın özelliklerini dikkate almak gerekir. İşin tamamlanmasının beklenmesi ve sonuçların daha sonra işlenmesi ile Node.js, eşzamansız yürütme ilkesini kullanır; kod “db.query(“select..”, function (result) {result Processing});” haline dönüştürülür, burada kontrol hemen diğer koda geçer ve veri geldikçe sorgu sonucu işlenir. .

Kaynak: opennet.ru

Yorum ekle