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

时间:2013-06-04 14:43:10

标签: node.js module native 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);
});

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

Uncaught TypeError: Object [object Object] has no method 'func' 

如果将对象写到console.log,我可以看到:

 Object {initializeClrFunc: function}
 initializeClrFunc: function () { [native code] }
 __proto__: Object

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

1 个答案:

答案 0 :(得分:0)

func方法由edge.js提供,edge.node本机模块的包装器。因此,您应该将require('edge.node')替换为require('edge')