我有使用 node-addon-api 包装的 c++ 代码:
Napi::String Method(const Napi::CallbackInfo &info)
{
Napi::Env env = info.Env();
time_t rawtime;
struct tm *timeinfo;
char system_date_buffer[80];
char iso_date_buffer[80];
time(&rawtime);
timeinfo = localtime(&rawtime);
setlocale(LC_ALL, "");
strftime(system_date_buffer, 80, "%x", timeinfo);
string sysDateFormat(system_date_buffer);
strftime(iso_date_buffer, 80, "%%Y-%m-%d", timeinfo);
string isoDateFormat(iso_date_buffer);
return Napi::String::New(env, sysDateFormat);
}
在里面:
Napi::Object Init(Napi::Env env, Napi::Object exports)
{
exports.Set(Napi::String::New(env, "sysDateFormat"), Napi::Function::New(env, Method));
exports.Set(Napi::String::New(env, "isoDateFormat"), Napi::Function::New(env, Method));
return exports;
}
如何返回不同的值或导出对象?以上我只返回
return Napi::String::New(env, sysDateFormat);
我也如何返回isoDateFormat
?我的想法是放入对象sysDateFormat
并isoDateFormat
返回它但不确定语法
目前我只返回字符串
更新:
我使用数组来存储这两个值,但返回类型显示编译时错误:no instance of overloaded function "Napi::Array::New" matches the argument list -- argument types are: (Napi::Env, std::string [2])
Napi::Array Method(const Napi::CallbackInfo &info)
{
Napi::Env env = info.Env();
time_t rawtime;
struct tm *timeinfo;
char system_date_buffer[80];
char iso_date_buffer[80];
string dateArray [2];
time(&rawtime);
timeinfo = localtime(&rawtime);
setlocale(LC_ALL, "");
strftime(system_date_buffer, 80, "%x", timeinfo);
string sysDateFormat(system_date_buffer);
strftime(iso_date_buffer, 80, "%%Y-%m-%d", timeinfo);
string isoDateFormat(iso_date_buffer);
dateArray[0] = sysDateFormat;
dateArray[1] = iso_date_buffer;
return Napi::Array::New(env, dateArray); // error here
}