使用C++為node.js寫擴充套件模組

admin發表於2017-04-06

提前準備工作:安裝好node.js、Python2.7與visual studio 2013。

過程如下:

首先安裝GYP專案生成工具,npm install -g node-gyp 。

建立test目錄,這是我們的工作目錄,在此目錄下再建一個src目錄,用來存放C++原始碼,另新建一個名為binding.gyp的文字檔案,這是gyp的專案檔案,內容如下:

[JavaScript] 純文字檢視 複製程式碼
{
  'targets':[{
    'target_name':'hello',
    'sources':['src/hello.cc']
  }]
}

再寫一個簡單的hello.cc,內容如下:

[C++] 純文字檢視 複製程式碼
#include <node.h>
using namespace v8;
  
Handle<Value> Hello(const Arguments& args) {
 HandleScope scope;
 return scope.Close(String::New("Hello world!"));
}
  
void init(Handle<Object> target) {
 NODE_SET_METHOD(target, "hello", Hello);
}
  
NODE_MODULE(hello, init)

然後執行命令: node-gyp configure

如果正確執行的話,會出現一個目錄----build,其下為你生成了vs2013的專案檔案,這樣就可以在vs2013中進行編輯與編譯了。

當然也可以直接用命令 node-gyp build進行編譯。

測試js程式如下:

[JavaScript] 純文字檢視 複製程式碼
var hello = require('./hello');
console.log(hello.hello());

相關文章