它們是提高 Node.js 程式碼效能和功能的一種方法,可以直接在 JavaScript 環境中擴充 C 程式碼。換句話說,C 外掛程式是您為 Node.js 創建的模組,它允許您編寫 C 函數和函式庫並在 JavaScript 程式碼中使用它們。
它們基本上是 JavaScript 和 C 之間的橋樑,這意味著 Node.js 可以運行較重的程式碼,而不會失去靈活性,最重要的是,它的簡單性。
首先,讓我們為我們的程式碼建立一個目錄
mkdir addon cd addon
接下來,讓我們建立初始化 package.json 並下載 lib node-gyp (確保在您的作業系統上正確安裝依賴項)
npm init -y npm i node-gyp
在我們的package.json中,我們將為我們的插件建立一個建置腳本。
mkdir addon cd addon
現在,我們將在 C 中建立插件並配置我們的綁定。
npm init -y npm i node-gyp
"scripts": { "build": "node-gyp configure build" }
準備好,一旦創建了這兩個文件,我們就可以運行我們的構建腳本(npm run build)並等待整個過程能夠享受我們的插件。接下來,我們將建立一個新檔案並在終端機中執行命令 node index.js
// array_sum.cpp #include <node.h> namespace demo { using v8::Array; using v8::Context; using v8::Exception; using v8::FunctionCallbackInfo; using v8::Isolate; using v8::Local; using v8::Number; using v8::Object; using v8::Value; void SumArray(const FunctionCallbackInfo<Value> &args) { Isolate *isolate = args.GetIsolate(); Local<Context> context = isolate->GetCurrentContext(); Local<Array> array = Local<Array>::Cast(args[0]); uint32_t length = array->Length(); double sum = 0; for (uint32_t i = 0; i < length; ++i) { Local<Value> element = array->Get(context, i).ToLocalChecked(); if (element->IsNumber()) { sum += element->NumberValue(context).FromJust(); } } args.GetReturnValue().Set(Number::New(isolate, sum)); } void Initialize(Local<Object> exports) { NODE_SET_METHOD(exports, "sum", SumArray); } NODE_MODULE(NODE_GYP_MODULE_NAME, Initialize) }
當目標是最佳化關鍵操作的效能或與本機程式碼整合時,外掛程式是強大的資源。儘管它們需要 C 語言知識並增加專案複雜性,但對於純 JavaScript 無法提供理想解決方案的情況,它們可以成為完美的解決方案。透過 N-API 等工具,外掛程式開發變得更加易於存取和穩定,使您的專案能夠將 JavaScript 的實用性與 C 的效率結合起來。
儲存庫連結: cpp-addon-nodejs
參考文獻: Node.js
以上是C 外掛程式 無 Node.js的詳細內容。更多資訊請關注PHP中文網其他相關文章!