原文: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對象