Nisan 2022'de NodeJS sürümü Node v18 yayınlandı. Düğüm v18 güncellemesi, zaman uyumsuz yerel depolama API'si, bir Web Montaj Sistemi Arayüzü (WASI) ve ECMAScript Modülleri için destek ekleyen Düğüm v14'ten bu yana en çok beklenen güncellemelerden biri olmuştur.

v18 yükseltmesi, varsayılan olarak küresel olarak etkinleştirilmiş bir getirme API'si, web akışı API desteği ve bir çekirdek test çalıştırıcı modülü dahil olmak üzere NodeJS'ye çeşitli iyileştirmeler ekler. Burada, v18'de NodeJS'de yapılan önemli değişikliklerin çoğunu ele alıyoruz.

1. Getirme API'si

Getirme API'si, HTTP isteklerine ve yanıtlarına erişmek ve bunları değiştirmek için bir arabirim sağlar. NodeJS v18'den önce, NodeJS ile yapılan HTTP istekleri aşağıdaki gibi üçüncü taraf kitaplıkları gerektiriyordu: aksiyolar ve düğüm getirme veya karmaşık http veya https paket.

NodeJS v18, getirme API'sini varsayılan olarak global kapsamda kullanılabilir hale getirir. Küresel getirme API'si, aşağıdakiler gibi üçüncü taraf kitaplıklara olan ihtiyacı ortadan kaldırır:

instagram viewer
aksiyolar ve bununla ilişkili ayrıntılı kod https kaynakları alırken paket ağ üzerinden eşzamansız olarak.

API kullanımına bir örnek:

const getData = zaman uyumsuzişlev () {
denemek {
const res = beklemek getir("https://example.com/users");
const veri = beklemek res.json();
konsol.log (veri);
} tutmak (hata) {
konsol.kayıt('Bir şeyler ters gitti, ${hata}`);
}
};
getData();

bu getData yukarıdaki işlev bir gönderir ALMAK kaynakları getirme isteği " https://example.com/users". Getirme API'si ayrıca bir seçenekler nesnesi olan isteğe bağlı ikinci bir parametre alır. Seçenek nesneleri, istekle ilgili ayrıntıları içermelidir. Örneğin:

const userData = {
isim: "Jon Kar",
yaş: 25,
Cinsiyet: "M",
};
const postData = zaman uyumsuzişlev (veri) {
denemek {
const res = beklemek getir("https://example.com/users", {
yöntem: "İLETİ",
gövde: JSON.stringify (veri),
});
const tepkiVeri = beklemek res.json();
konsol.kayıt(
`Talep başarılı oldu, İşte ayrıntılar: ${responseData}`
);
} tutmak (hata) {
konsol.kayıt(`Talep başarısız oldu, İşte ayrıntılar: ${hata}`);
}
};
postData (userData);

Getirme API'si hala deneysel, çoğu kullanıcı için iyi çalışması gerekir.

2. Web Akışları API'si desteği

Multimedya veya gerçek zamanlı uygulamaları düşünün; bu, web akışları API'sinin temel kullanım durumudur. Web akışları API'si, bir ağ üzerinden alınan büyük bir kaynağın programatik olarak küçük parçalara ayrılmasını ve ardından onu parça parça işlemesini sağlayan bir dizi arabirimdir.

Bir akış örneği, başarılı bir tarafından döndürülen yanıt gövdesidir. gidip getirmek rica etmek. Yanıt gövdesi şu türdendir: OkunabilirAkış.

NodeJS v18 bir deneysel web akışları API'sinin uygulanması. Bu güncellemeyle, web akışı API'leri artık hem istemcide hem de sunucuda kullanılabilir ve geliştirmeyi daha kolay hale getirir.

Şu anda desteklenen akışların bir listesini şurada bulabilirsiniz: resmi sürüm notları.

3. Test Çalıştırıcı Modülü

NodeJS'nin önceki sürümlerinde, üçüncü taraf kitaplıkları olmadan test yerleşik olarak yapılırdı. iddia etmek kütüphane.

bu iddia etmek kütüphane basit testler yazmayı kolaylaştırdı, ancak birden fazla test takımıyla çalışmayı zorlaştıran önemli sınırlamaları vardı. Bu sınırlamalar, Jest gibi üçüncü taraf kitaplıkların daha gelişmiş testler çalıştırma ihtiyacını artırdı.

NodeJS v18, NodeJS'nin kendi çekirdek test çalıştırma modülünün tanıtımıyla üçüncü taraf kitaplıklarına olan ihtiyacı ortadan kaldırır. Test çalıştırıcı, Jest'e çok benzeyen alt testler, test atlama, geri arama testleri vb. gibi özellikleri destekler.

Test çalıştırıcısını kullanmak için içe aktarmanız gerekir iddia etmek itibaren iddia etmek ve Ölçek itibaren düğüm: test. dikkat edin"düğüm:" önek; düğüm çekirdek paketlerini kullanıcı tarafından oluşturulan paketlerden ayıran, düğümün yeni protokolüdür.

constiddia etmek = gerektirir("iddia etmek");
const test = gerekmek("düğüm: test");

Test çalıştırıcısı modülünü kullanan basit bir test örneği:

Ölçek("Dizelerin aynı olup olmadığını kontrol edin", (t) => {
assert.strictEqual("Ölçek", "Ölçek");
});

Test koşucusu tarafından görüntülenen test sonuçları, TAP (Her Şeyi Test Etme Protokolü) biçim. Bu özelliğin hala deneysel olduğunu ve herhangi bir zamanda değişebileceğini unutmayın.

4. Diğer Yükseltmeler ve Düzeltmeler

Düğüm v18 güncellemesi ayrıca v8 motorunda 10.1 sürümüne bir güncelleme içerir. v8 motoru, JavaScript'i yürütmek için NodeJS tarafından kullanılan JavaScript çalışma zamanıdır.

v8 güncellemesi, dizi yöntemlerison bul ve bulLastIndex NodeJS'de mevcuttur ve sınıf alanlarının ve özel sınıf yöntemlerinin performansını iyileştirir.

NodeJS ayrıca, Node v18 yükseltmesinde global kapsamda aşağıdaki API'leri sunar:

  • damla
  • Yayın Kanalı

Düğüm v18'e yükseltme

Düğüm v18'i kullanarak, tüm bir uygulamayı harici kitaplıklar olmadan test edebilir, kaynakları harici kitaplıklar olmadan eşzamansız olarak getirebilir ve sunucunuzda web akışlarının etkinleştirilmesini sağlayabilirsiniz.

Ancak, bu özelliklerin hala deneysel olduğunu ve her an değişebileceğini belirtmekte fayda var. kullanarak NodeJS v18'e yükseltebilirsiniz. resmi indirme bağlantısı.