Node.js Addons翻譯(C/C++擴充),node.jsaddons

來源:互聯網
上載者:User

Node.js Addons翻譯(C/C++擴充),node.jsaddons

PS:請先升級Node 6.2.1,Node 升級命令 npm install -g n;n stable.NOde.js擴充是一個通過C/C++編寫的動態連結程式庫,並通過Node.js的函數require()函數載入,用起來就像使用一個普通的Node.js模組。它主要為Node與C/C++庫之間提供介面。

這樣,若一個方法或函數是通過Node擴充實現則變得相當複雜,涉及幾個模組與介面的知識:

•v8:一個實現了通過C++庫實現了的javascript.V8提供了建立對象機制,回呼函數等。V8API文檔大多在v8.h標頭檔中。點我v8線上文檔

•libuv:一個實現了Node.js的背景工作執行緒和非同步行為的平台的事件迴圈的C庫。它還充當了一個跨平台的抽象庫,可以簡單地POSIX-like式的訪問所有主流作業系統系統許多常見任務,例如與檔案系統互動、通訊端、定時器和系統事件。libuv還提供了一個抽象pthreads-like線程,可以用於更複雜的非同步。Node.js的C/C++擴充需要超越標準事件迴圈。外掛程式作者鼓勵去思考如何避免阻塞I/O事件迴圈和通過libuv非阻塞系統操作、背景工作執行緒、使用者自訂的線程完成任務密集型工作。

•Node.js內建庫:Node.js本身使用了大量的C/C++擴充的API,C/C++擴充時最重要的一個類node:ObjectWrap

•Node.js眾多的靜態連結庫如OpenSSL:Node.js的其它的庫在它的源碼分類樹下的 deps目錄。詳情請見·Node.js's own dependencies for additional information。點我Node.js官方擴充庫樣本,這也許是你為Node.js編寫C/C++擴充庫的起點。只有V8和OpenSSL類經常在Node C/C++擴充中頻繁的使用。

Node C/C++擴充第一彈-最新樣本Hello World

該樣本適用Node.js版本號碼為V5.0以上。

// hello.jsconst addon = require('./build/Release/addon');console.log(addon.hello()); // 'world'// hello.cc#include <node.h>#include <v8.h>namespace demo {using v8::FunctionCallbackInfo;using v8::Isolate;using v8::Local;using v8::Object;using v8::String;using v8::Value;void Method(const FunctionCallbackInfo<Value>& args) {Isolate* isolate = args.GetIsolate();args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world"));}void init(Local<Object> exports) {NODE_SET_METHOD(exports, "hello", Method);}NODE_MODULE(addon, init)} // namespace demo // binding.gyp{"targets": [{"target_name": "addon","sources": [ "hello.cc" ]}]} 

node-gyp命令

複製代碼 代碼如下:
node-gyp configure build

以上所述是小編給大家介紹的Node.js Addons翻譯(C/C++擴充)的相關知識,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對幫客之家網站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.