如何在 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 (将#修改为@)