原文:https://www.cnblogs.com/chyingp/p/nodejs-learning-napi.html
可能是版本问题,我用node v10.6.0 遇到了问题
不过解决了.
一般情况错误都有提示,按照前面的这个网友的顺序,应该遇到的问题:
这个要修改一下代码了:
原来的代码:
#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为扩展的初始化方法
改成的新代码:
#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