我正在尝试将包含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();
}