带有包含本机代码的外部模块的Node-Webkit

use*_*388 6 module native node.js node-webkit

我正在使用node-webkit和一个名为edge的外部模块.

根据node-webkit文档,包含本机代码的模块必须使用nw-gyp相反的方式重新编译node-gyp.我能够无错误地重新编译,node-webkit似乎导入模块OK.

继承我的代码.我正在尝试使用的代码:

var edge = require('edge.node');

var hello = edge.func(function () {/*
async (input) => 
{ 
    return ".NET welcomes " + input.ToString(); 
}
*/});

hello('Node.js', function (error, result) {
if (error) throw error;
console.log(result);
});
Run Code Online (Sandbox Code Playgroud)

在node-webkit中运行时会引发以下错误.

Uncaught TypeError: Object [object Object] has no method 'func' 
Run Code Online (Sandbox Code Playgroud)

如果把对象写出来console.log我可以看到:

 Object {initializeClrFunc: function}
 initializeClrFunc: function () { [native code] }
 __proto__: Object
Run Code Online (Sandbox Code Playgroud)

所以该模块似乎已经加载.如果我在node-webkit之外运行相同的代码,一切都很完美,我可以访问该func函数.这让我发疯了 - 任何帮助都会非常感激.

Ced*_*edX 0

funcedge.js方法由原生模块的包装器提供edge.node。所以你应该替换require('edge.node')require('edge').