node.js 使用NAPI寫C++插件,(部分轉帖)

原文:https://www.cnblogs.com/chyingp/p/nodejs-learning-napi.htmlhtml

多是版本問題,我用node v10.6.0 遇到了問題node

不過解決了.api

通常狀況錯誤都有提示,按照前面的這個網友的順序,應該遇到的問題:ui

 

這個要修改一下代碼了:spa

原來的代碼:code

#include <node_api.h>

// 實際暴露的方法,這裏只是簡單返回一個字符串
napi_value HelloMethod (napi_env env, napi_callback_info info) {
    napi_value world;
    napi_create_string_utf8(env, "world", 5, &world);
    return world;
}

// 擴展的初始化方法,其中 
// env:環境變量
// exports、module:node模塊中對外暴露的對象
void Init (napi_env env, napi_value exports, napi_value module, void* priv) {
    // napi_property_descriptor 爲結構體,做用是描述擴展暴露的 屬性/方法 的描述
    napi_property_descriptor desc = { "hello", 0, HelloMethod, 0, 0, 0, napi_default, 0 };
    napi_define_properties(env, exports, 1, &desc);  // 定義暴露的方法
}

NAPI_MODULE(hello, Init);  // 註冊擴展,擴展名叫作hello,Init爲擴展的初始化方法

改爲的新代碼:htm

#include <node_api.h>

// 實際暴露的方法,這裏只是簡單返回一個字符串
napi_value HelloMethod (napi_env env, napi_callback_info info) {
    napi_value world;
    napi_create_string_utf8(env, "maomingchao", 11, &world);
    return world;
}

// 擴展的初始化方法,其中 
// env:環境變量
// exports、module:node模塊中對外暴露的對象
napi_value Init (napi_env env, napi_value exports) {// <=這裏作了修改 // napi_property_descriptor 爲結構體,做用是描述擴展暴露的 屬性/方法 的描述
    napi_property_descriptor desc = { "hello", 0, HelloMethod, 0, 0, 0, napi_default, 0 };
    napi_define_properties(env, exports, 1, &desc);  // 定義暴露的方法
    return exports;
}

NAPI_MODULE(hello, Init)  // 註冊擴展,擴展名叫作hello,Init爲擴展的初始化方法

 

每次修改完C++代碼,須要從新 node-gyp rebuild對象

相關文章
相關標籤/搜索