node-addon-api
- Node.js kursu
- Uzman
- Ders 8/47
- 5 dk
node-addon-api C++ wrapper'ını öğrenirsin.
node-addon-api
node-addon-api, N-API üzerine kurulu bir C++ sarmalayıcıdır (wrapper). Ham N-API C çağrıları yerine C++ sınıflarıyla çalışırsın; bu, kodu daha okunaklı ve daha az hataya açık yapar. node-addon-api başlık dosyası tek satırla eklenir.
Bir addonWrapper(className, methods) fonksiyonu bu sarmalayıcı fikrini modeller: bir sınıf adı ve yöntem listesi alır, {class, methods, wrapper: 'node-addon-api'} döndürür. Gerçek node-addon-api'de Napi::ObjectWrap ile bir C++ sınıfı JS sınıfına bağlanır. Burada JS ile modelleyip sarmalayıcının ne yaptığını anlıyoruz: karmaşık C çağrılarını sınıf yöntemleriyle gizler. Çıktı node-addon-api olur; bu, sarmalayıcının adıdır.
Sarmalayıcı deseni
node-addon-api'nin temel deseni şudur: bir C++ sınıfı tanımlarsın, yöntemlerini bildirirsin, sonra JS'e açarsın. addonWrapper bunu bir nesne döndürerek modeller. .wrapper özelliği hangi sarmalayıcının kullanıldığını söyler.
Örnek: addonWrapper('Calculator', ['add', 'subtract']) {class: 'Calculator', methods: ['add', 'subtract'], wrapper: 'node-addon-api'} döndürür. .wrapper 'node-addon-api' olur. Bu desen, gerçek bir addon'ın yapısını basit bir nesneyle temsil eder: sınıf adı, yöntemler ve sarmalayıcı. Gerçek kod C++ olsa da yapı aynıdır: bir sınıf, bir yöntem listesi ve bir bağlama mekanizması. console.log(...wrapper) ile hangi sarmalayıcının kullanıldığını doğrularız.
Uygulama Sarmalayıcı fonksiyonu yaz
function addonWrapper(className, methods) yaz. {class: className, methods: methods, wrapper: 'node-addon-api'} döndür. console.log(addonWrapper('Calculator', ['add', 'subtract']).wrapper) yazdır.
Başlangıç kodu
// addonWrapper fonksiyonu yaz
// sınıf adı ve yöntem listesi alır
// {class, methods, wrapper: 'node-addon-api'} döndürür
// wrapper değerini yazdır
// buraya yazÖrnek çözüm
function addonWrapper(className, methods) {
return {class: className, methods: methods, wrapper: 'node-addon-api'};
}
console.log(addonWrapper('Calculator', ['add', 'subtract']).wrapper);Beklenen çıktı
node-addon-api
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 yöntem listesini döndür
function addonWrapper(className, methods) { return {class: className, methods: ____, wrapper: 'node-addon-api'}; }
function addonWrapper(className, methods) { return {class: className, methods: methods, wrapper: 'node-addon-api'}; }
Açıklama: methods parametresi doğrudan döndürülür.
2 Kavramı açıklamasına eşle
| Kavram | Anlamı |
|---|---|
node-addon-api |
C++ sarmalayıcı |
Napi::ObjectWrap |
C++ sınıfını JS'e bağlar |
wrapper |
Sarmalayıcı adı |
methods |
Yöntem listesi |
3 addonWrapper(...).wrapper ne döndürür?
addonWrapper('Calculator', ['add']).wrapper- 'Calculator'
- 'add'
- 'node-addon-api' Doğru cevap
- ['add']
Açıklama: .wrapper özelliği 'node-addon-api' döndürür.