1

我使用 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 文件?

4

0 回答 0