我正在尝试将包含NodeJS中类的对象数组的变量保存到文件中,以便可以从那里重用它,而不必像这样重新获取它

const chatAPI = require("some_module");
const client = new chatAPI.Client("Auth-Key");
var channels = client.channels();
//Now channels is something I would like to use later on

//Say
channels.forEach(channel => {channel.send("Hello")});

有什么方法可以将channels变量保存到文件,以便以后可以再次将其加载到程序存储器中并按原样使用它,而不必创建新的客户端并获取数据。

详细地说,这与我让该程序在阻塞循环中运行一段时间,然后再使用该变量一样,在这种情况下,我将不必重新解析或重建数据。

最佳答案

有几种方法可以做到这一点,例如

let a = {foo: "bar" };
console.log("a", a);

fs.writeFileSync("./saved_data.json", JSON.stringify(a));

let b = require("./saved_data.json");
console.log("b", b);

你也可以:
let b = JSON.parse(fs.readFileSync("./saved_data.json"));
console.log("b", b);

现在,您只能保存数据,而不能保存方法!

如果您想保留一个对象,则可以使用一个全局变量来存储它:
let globalObject = null;

someMethod.get((obj) => {
    // Save this for later use
    globalObject = obj;
})

// Later on
if (globalObject) {
    globalObject.doStuff();
}

10-04 22:35
查看更多