Rumah  >  Artikel  >  hujung hadapan web  >  Cara membuat pemalam Node.js menggunakan kod C

Cara membuat pemalam Node.js menggunakan kod C

PHPz
PHPzasal
2023-04-17 16:39:45625semak imbas

Node.js ialah masa jalan Javascript sumber terbuka untuk membina aplikasi web berprestasi tinggi dan boleh skala. Tidak seperti penyemak imbas, Node.js membenarkan Javascript dijalankan dalam persekitaran sebelah pelayan, menjadikan Javascript bahasa pengaturcaraan yang lebih komprehensif.

Node.js mempunyai banyak ciri cemerlang, seperti operasi I/O tak segerak, dipacu peristiwa, dll. Ciri ini membolehkan Node.js mengendalikan sejumlah besar permintaan serentak dengan cekap. Walau bagaimanapun, kadangkala kita perlu menggunakan C atau C++ untuk melaksanakan beberapa fungsi khusus yang tidak dapat dilaksanakan oleh Node.js, seperti pengurusan memori atau memanggil API peringkat perkakasan. Dalam kes ini, melanjutkan Node.js dengan kod C mungkin merupakan pilihan yang baik.

Node.js menyediakan ciri yang dipanggil "pemalam C++", yang membenarkan sambungan berfungsi ditulis dalam C atau C++. Dalam artikel ini, kita akan belajar cara membuat pemalam Node.js menggunakan kod C.

  1. Pasang node-gyp

node-gyp ialah alat untuk membina pemalam Node.js. Untuk menulis pemalam Node.js menggunakan kod C, kita mesti memasang node-gyp terlebih dahulu.

Untuk memasang node-gyp, jalankan arahan berikut:

npm install -g node-gyp
  1. Buat modul C++

Sebelum melanjutkan Node.js dengan kod C , kita perlu mencipta modul C++ terlebih dahulu. Kita boleh menggunakan node-gyp untuk menjana templat dan kemudian mengubah suainya.

Untuk menjana templat, jalankan arahan berikut:

node-gyp configure

Ini akan menjana fail binding.gyp dan struktur direktori.

Dalam struktur direktori yang dihasilkan kita akan menemui fail yang dipanggil "hello.cc" yang mengandungi fungsi mudah yang akan mengembalikan rentetan "dunia".

Kami boleh menggunakan templat ini untuk mencipta modul kami sendiri.

  1. Menulis Kod C++

Sekarang, kita boleh mula menulis kod C++ kita.

Andaikan kita ingin mencipta pemalam yang dipanggil "myaddon" dalam Node.js yang akan mengeluarkan rentetan "Hello, World!". Berikut ialah kod kami:

#include <node.h>

using namespace v8;

void Method(const FunctionCallbackInfo<Value>& args) {
  Isolate* isolate = args.GetIsolate();
  args.GetReturnValue().Set(String::NewFromUtf8(isolate, "Hello, World!"));
}

void init(Local<Object> exports) {
  NODE_SET_METHOD(exports, "hello", Method);
}

NODE_MODULE(addon, init)

Di sini, kami menggunakan ruang nama v8 dan kelas Isolate yang disediakan oleh Node.js untuk menyepadukan kod C++ kami ke dalam Node.js.

Dalam contoh mudah ini, kami mentakrifkan fungsi yang dipanggil Kaedah yang menerima tika FunctionCallbackInfo sebagai hujahnya dan menggunakan tika itu untuk mengembalikan rentetan yang dijana. Kami juga menggunakan makro NODE_SET_METHOD untuk melampirkan fungsi Kaedah pada sifat objek Node.js. Akhir sekali, kami menggunakan makro NODE_MODULE untuk mengeksport kod kami ke Node.js dan memberikannya pengecam yang dipanggil "tambahan".

  1. Menulis fail binding.gyp

Setelah kami menulis kod C++ kami, kami perlu menggunakan fail binding.gyp untuk memberitahu node-gyp cara menyusun kami kod.

Berikut ialah fail binding.gyp yang mudah:

{
  "targets": [
    {
      "target_name": "myaddon",
      "sources": [
        "hello.cc"
      ]
    }
  ]
}

Di sini, kami mentakrifkan sasaran dengan nama sasaran "myaddon" dan menggunakan fail hello.cc sebagai fail sumber.

  1. Kompilasi dan jalankan pemalam menggunakan node-gyp

Kini kita boleh menggunakan node-gyp untuk menyusun pemalam kami dan kemudian memuatkannya dalam Node.js.

Pertama, susun pemalam kami menggunakan arahan berikut:

node-gyp build

Ini akan menjana direktori yang dipanggil "bina" dalam direktori projek yang mengandungi fail yang kami perlukan. Sekarang, kita boleh memuatkan pemalam dalam Node.js dengan cara ini:

var addon = require('./build/Release/myaddon');
console.log(addon.hello());

Ini akan mengeluarkan rentetan "Hello, World!"

Ringkasan

Dalam artikel ini, kami mempelajari cara mencipta pemalam Node.js menggunakan kod C. Dengan menggunakan node-gyp untuk membina pemalam kami, kami boleh menyepadukan kod C atau C++ dengan mudah ke dalam projek Node.js, dengan itu memanjangkan fungsi Node.js dan menyelesaikan beberapa masalah yang tidak dapat diselesaikan oleh Node.js.

Atas ialah kandungan terperinci Cara membuat pemalam Node.js menggunakan kod C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn