我使用 Node 存储库中的 Embed_Test 示例构建了一个嵌入式 Node 实例。使用这个实例,我正在尝试执行一些 C++ 代码。我有一个生成的 .node 和 .dll,并且我有 webpack'd 我的 Javascript 文件。当我跑步时,
node dist/bundle.js
它运行良好。但是,当我启动嵌入式 NodeJS 应用程序并尝试运行 bundle.js 时,我收到以下错误(好像它无法加载 .node 文件?):
TypeError: Cannot read property 'testCppCode' of undefined
at evalmachine.<anonymous>:154:2305
at s.handle_request (evalmachine.<anonymous>:120:782)
at s (evalmachine.<anonymous>:113:879)
at p.dispatch (evalmachine.<anonymous>:113:901)
at s.handle_request (evalmachine.<anonymous>:120:782)
at evalmachine.<anonymous>:106:2533
at Function.v.process_params (evalmachine.<anonymous>:106:3436)
at g (evalmachine.<anonymous>:106:2476)
at evalmachine.<anonymous>:259:218
at s.handle_request (evalmachine.<anonymous>:120:782)
这是我的 App.js,在 webpack 之前:
var myArgs = process.argv.slice(2);
var ip = myArgs.length >= 1 ? myArgs[0] : "localhost";
var port = myArgs.length >= 2 ? myArgs[1] : "5555";
var fs = require("fs");
var path = require("path");
const express = require("express");
var addon = require("../build/Release/test.node");
const server = express();
server.get("/", (req, res) => {
var res = addon.testCppCode("Sample", function (err, cpp) {
var capabilitiesResult = cpp;
if (err) {
console.log("Error!");
console.log(err);
console.log(cpp);
} else {
console.log("Success!");
}
});
});
我尝试将 test.node 和 test.dll 与 node 的嵌入式实例粘贴在同一个文件夹中,我尝试将它放在与 webpack 相同的目录中,我尝试将它粘贴在相对目录中嵌入式节点(所以它会在../build/Release/)——但错误总是一样的。我需要做什么才能让它“看到” .node 文件?