标签: node.js-napi

将 OpenCV C++ 附加组件添加到 node.js 的最基本示例

所以最近我一直在使用 C++ 进入 OpenCV。我已经建立了一些我想导出到 Nodejs 的库和应用程序,但我终生无法弄清楚。

我试图在下面的这个 repo 中查看他是如何做到的,但是特别是因为这是我的第一个附加组件。 https://github.com/peterbraden/node-opencv/blob/master/binding.gyp

我不介意它与 NAN 或 N-API 一起使用,我只是希望有一些简单易懂的东西,可以看到什么发生在何处以及为什么发生。

这是一个简单的 OpenCV 函数,它只打开一个图像,我试图将其用作 Node 的插件:

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;

int ShowImage()
{
  String imageName("./image.png");
  Mat image;
  image = imread(imageName, IMREAD_COLOR);
  namedWindow("Display window", WINDOW_AUTOSIZE);
  imshow("Display window", image);
  waitKey(0);
}
Run Code Online (Sandbox Code Playgroud)

c++ opencv node.js node.js-nan node.js-napi

5
推荐指数
1
解决办法
1742
查看次数

Node.js N-API 插件 - 如何字符串化/解析 JSON?

我正在使用N-API(C 接口,不要与围绕 N-API的node-addon-api C++ 包装器混淆)为 Node.js 编写一个插件,它从外部源接收 JSON 格式的数据并且需要在其对象形式上执行 JS 回调函数。但是,在将 JSON 格式的数据传递到 JS 回调之前,我无法将其解析为插件内的正确对象(即,由 JSON.parse 生成),并且似乎只能在其文本中传递它形式。

到目前为止,我发现的唯一示例涉及直接使用C++ NAN和 V8 API。我错过了什么吗?我应该对 JSON.parse 进行另一个 napi_call_function 调用,捕获它的返回值,然后传递它吗?(如果是这样,我如何从我的插件中获取 JSON.parse 回调信息?)有没有我没有找到的更简单的 API?

出于多种原因,我更愿意使用 C,而不是 C++,尽管我认为这是可以协商的。

foo.js

const myaddon = require('bindings')('myaddon');
const EventEmitter = require('events').EventEmitter;
const emitter = new EventEmitter();

emitter.on('eventReceived', (foo) => {
    var obj = JSON.parse(foo); // *** this is what I'd like to avoid ***
    console.log(obj.bar);
})

myaddon.RegisterForEvents(emitter.emit.bind(emitter));
Run Code Online (Sandbox Code Playgroud)

我的插件

void AsyncComplete(napi_env env, napi_status status, void * data) …
Run Code Online (Sandbox Code Playgroud)

node.js node.js-addon node.js-napi

5
推荐指数
1
解决办法
1156
查看次数

标签 统计

node.js ×2

node.js-napi ×2

c++ ×1

node.js-addon ×1

node.js-nan ×1

opencv ×1