PS: Harap tingkatkan simpul 6.2.1 terlebih dahulu. Perintah Peningkatan Node NPM Instalasi -GN; n stable.node.js Extension adalah pustaka tautan dinamis yang ditulis dalam C/C ++ dan dimuat melalui fungsi node.js memerlukan () fungsi. Ini seperti menggunakan modul Node.js biasa. Ini terutama menyediakan antarmuka antara node dan perpustakaan C/C ++.
Dengan cara ini, jika suatu metode atau fungsi diimplementasikan melalui ekstensi simpul, itu menjadi sangat kompleks, melibatkan pengetahuan tentang beberapa modul dan antarmuka:
• V8: JavaScript.v8 yang mengimplementasikan implementasi melalui perpustakaan C ++ menyediakan mekanisme pembuatan objek, fungsi panggilan balik, dll. Sebagian besar dokumen V8API berada dalam file header V8.H. Klik Dokumen Online V8 saya
• Libuv: Perpustakaan untuk loop acara yang mengimplementasikan utas pekerja Node.js dan perilaku asinkron. Ini juga bertindak sebagai perpustakaan abstrak lintas platform yang dapat dengan mudah akses seperti POSIX ke semua sistem sistem operasi utama banyak tugas umum, seperti interaksi dengan sistem file, soket, timer, dan acara sistem. Libuv juga menyediakan utas seperti pthreads abstrak yang dapat digunakan untuk asinkron yang lebih kompleks. Ekstensi Node.js 'C/C ++ perlu melampaui loop acara standar. Penulis plug-in mendorong pemikiran tentang cara menghindari pemblokiran loop acara I/O dan pekerjaan intensif yang lengkap melalui operasi sistem non-blocking libuv, utas pekerja, dan utas yang ditentukan pengguna.
• Perpustakaan bawaan Node.js: Node.js sendiri menggunakan sejumlah besar API ekstensi C/C ++. Kelas terpenting untuk simpul ekstensi C/C ++: ObjectWrap
• Berbagai pustaka tautan statis Node.js, seperti OpenSSL: Node.js dari perpustakaan lainnya ada di direktori DEP di bawah pohon direktori sumbernya. Untuk detailnya, silakan lihat dependensi Node.js sendiri untuk informasi tambahan. Klik Contoh Perpustakaan Ekstensi Node.js Resmi saya, yang mungkin menjadi titik awal bagi Anda untuk menulis Perpustakaan Ekstensi C/C ++ untuk Node.js. Hanya kelas V8 dan OpenSSL yang sering digunakan sering dalam ekstensi simpul C/C ++.
Node C/C ++ Extension First Bomb - Contoh Terbaru Halo Dunia
Contoh ini berlaku untuk nomor versi node.js v5.0 atau di atas.
// hello.jsconst addon = membutuhkan ('./ build/rilis/addon'); console.log (addon.hello ()); // 'dunia' // hello.cc#termasuk <node.h> #include <v8.h> namespace demo {menggunakan v8 :: functionCallbackInfo; menggunakan v8 :: isolate; menggunakan v8 :: lokal; menggunakan v8 :: menggunakan v8 :: menggunakan v8 :: void Method (const functioncall functioncin = voidin* nilai {voidin function* {voidin; args.getisolate (); args.getreturnValue (). set (string :: newfromutf8 (isolate, "world"));} void init (Lokal <Poles> Ekspor) {node_set_method (Exports, "Hello", Metode);} node_module (addon, init)}}} node / node / {node {node) {hello "node / / node {hello); [{"target_name": "addon", "sumber": ["hello.cc"]}]}Perintah Node-Gyp
Salinan kode adalah sebagai berikut:
Node-GYP Mengkonfigurasi Build
Di atas adalah pengetahuan yang relevan dari terjemahan addons node.js (ekstensi C/C ++) yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!