微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 napi 插件中存储数据?

如何解决如何在 napi 插件中存储数据?

#include <napi.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <string>

int fibonacci(int number) {
  if (number == 0) {
    return 0; // базовый случай (условие завершения)
  }
  if (number == 1) {
    return 1; // базовый случай (условие завершения)
  }
  return fibonacci(number - 1) + fibonacci(number - 2);
}

bool isNumber(std::string s) {
  for (int i = 0; i < s.length(); i++) {
    if (isdigit(s[i]) == false) {
      return false;
    }
  }
  return true;
}

Napi::Number get(const Napi::CallbackInfo &info) {
  Napi::Env env = info.Env();
  int i;
  std::string line = "";
  std::ifstream fin("counter.txt");
  fin >> line;
  fin.close();
  std::ofstream fout("counter.txt",std::ofstream::out | std::ofstream::trunc);
  if (!isNumber(line)) {
    i = 0;
    fout << "0";
    fout.close();
    return Napi::Number::New(env,fibonacci(i));
  } else {
    i = std::stoi(line);
    i++;
    fout << std::to_string(i);
    fout.close();
    return Napi::Number::New(env,fibonacci(i));
  }
}

void reset(const Napi::CallbackInfo &info) {
  std::ofstream fout("counter.txt",std::ofstream::out | std::ofstream::trunc);
  fout << "0";
  fout.close();
}

Napi::Object init(Napi::Env env,Napi::Object exports) {
  exports.Set(Napi::String::New(env,"get"),Napi::Function::New(env,get));
  exports.Set(Napi::String::New(env,"reset"),reset));
  return exports;
};

NODE_API_MODULE(addon,init);

我有一个生成斐波那契数列的简单插件。但现在它将当前序列号存储在一个单独的文件中。如何使用 node-addon-api 将数据存储在插件中,这可能吗?即使应用程序处于非活动状态,我也需要存储数据。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。