我正在尝试使用 node-addon-api 在 node.js 中运行 c++。我从媒体上读过一篇写得很好的文章。但是我想将一个浮点数传递给我的一个函数,并将一个浮点数组传递给另一个函数。我想从他们两个返回一个浮点数组。函数示例 ( greeting.cpp
)
#include <iostream>
#include <string>
#include <cmath>
#include "greeting.h"
float* helloUser( float name ) {
float* result = new float[3];
result[0] = 1;
result[1] = 2;
result[2] = name;
return result;
}
index.cpp
以及带有模块本机实现的代码:
#include <napi.h>
#include <string>
#include "greeting.h"
Napi::Float32Array greetHello(const Napi::CallbackInfo& info) {
Napi::Env env = info.Env();
float user = (float) info[0].ToNumber();
float* result = helloUser( user );
return Napi::Float32Array::New(env, result);
}
Napi::Object Init(Napi::Env env, Napi::Object exports) {
exports.Set(
Napi::String::New(env, "greetHello"), // property name => "greetHello"
Napi::Function::New(env, greetHello) // property value => `greetHello` function
);
return exports;
}
NODE_API_MODULE(greet, Init)
问题是,Napi::Float32Array
不起作用,我试过Napi::TypedArrayOf<float>
了,它也不起作用。我不太喜欢编写模块。我只希望我在节点中运行的纯 c++ 代码将其结果发送到前端。我尝试接受和返回浮点数,Napi::Number
它工作正常。但我不知道如何让它开始使用数组。任何帮助表示赞赏。