Node.js
N-API
N-API ile native addon yazmayı öğrenirsin.
N-API nedir?
N-API, Node.js'in C/C++ kodu yazmak için sunduğu kararlı uygulama programlama arayüzüdür (API). N-API, Node.js sürümleri arasında değişmeyen bir sözleşme sağlar; böylece bir native addon bir kez yazılıp birçok Node.js sürümünde çalışır.
Eskiden addon'lar doğrudan V8 başlıklarına bağlıydı; V8 güncellenince addon bozulurdu. N-API bu bağımlılığı kaldırır: sen N-API çağrıları yazarsın, Node.js bunu içten V8'e çevirir. Bir napiModule(name) fonksiyonu bu fikri modeller: {name: name, api: 'N-API', version: 9} döndürür. N-API sürüm 9, Node.js 22 ile gelir. Bu soyutlama, addon bakımını büyük ölçüde azaltır.
N-API modülü
Bir N-API modülü, JS tarafına bir nesne döndüren bir kayıt fonksiyonudur. napiModule(name) bunu modeller: ad, API adı ve sürüm döndürür. Gerçek N-API'de bu C ile yazılır; burada JS ile modelliyoruz.
Örnek: function napiModule(name) { return {name: name, api: 'N-API', version: 9}; }. napiModule('myaddon') {name: 'myaddon', api: 'N-API', version: 9} döndürür. console.log(napiModule('myaddon').api + ' v' + napiModule('myaddon').version) ile N-API v9 yazdırılır. Bu, N-API modül kaydının basit bir modelidir; gerçek kayıt NAPI_MODULE makrosuyla yapılır ama fikir aynıdır: bir ad ve bir dizi dışa aktarma.
Uygulama N-API modülü yaz
function napiModule(name) yaz. {name: name, api: 'N-API', version: 9} döndür. console.log(napiModule('myaddon').api + ' v' + napiModule('myaddon').version) yazdır.
Örnek çözümü göster
function napiModule(name) {
return {name: name, api: 'N-API', version: 9};
}
console.log(napiModule('myaddon').api + ' v' + napiModule('myaddon').version);
Kendini test et
-
N-API neyi çözer?
- Düşük bellek kullanımını
- Sürümler arası addon uyumluluğunu
- Otomatik testi
- Daha hızlı ağ isteklerini
Cevabı göster
Sürümler arası addon uyumluluğunu — N-API, addon'ların Node.js sürümleri arasında bozulmadan kalmasını sağlar.
-
N-API sürümünü döndür
function napiModule(name) { return {name: name, api: 'N-API', version: ____}; }
Cevabı göster
function napiModule(name) { return {name: name, api: 'N-API', version: 9}; }
-
Kavramı açıklamasına eşle
- N-API
- Kararlı addon arayüzü
- V8
- JavaScript motoru
- addon
- C/C++ eklentisi
- Node.js 22
- N-API v9 ile gelir
Sıradaki ders: node-addon-api