0

我在 Visual Studio 中构建了节点,然后通过在 Visual Studio 项目中设置适当的路径,成功地在 .node 扩展名中编译了这段代码。

#include <node.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)

}

但是当我通过这段代码调用这个模块时,

var addon = require('./nodeExt');

console.log(addon.hello()); 

我收到上述错误。请提出您的建议。

4

1 回答 1

0

在 Visual Studio 中构建并将扩展名更改为 .node 将不起作用。您需要使用 node-gyp 为 node.js 配置和构建本机插件。请参阅此处的指南:

https://nodejs.org/dist/latest-v6.x/docs/api/addons.html

提示:运行后node-gyp configure,您可以使用 Visual Studio 打开 .sln 文件(build/Release/binding.sln 或 build/Debug/binding.sln)。

于 2016-09-23T03:10:40.260 回答