我来找你是因为我正在尝试在 Discord.JS 上执行 foreach 循环来检测 JSON 文件中的更改。我的文件确实更改了内容,但我的 foreach 循环将旧内容保留在内存中。我不知道如何解决这个问题......我的 index.js:const Discord = require('discord.js');const low = require('lowdb')const FileSync = require('lowdb/adapters/FileSync')const fetch = require('node-fetch');const client = new Discord.Client();const config = require('./config.json');const database = require('./db.json');const adapter = new FileSync('./db.json')const db = low(adapter)const prefix = config.prefix;let api = config.api;client.once('ready', () => { db.defaults({numbers: []}) .write() setInterval(function() { database.numbers.forEach(async element => { let state = await fetch(`some-api-url`).then(response => response.json()); if(state[0].response != element.response){ db.get('numbers') .find({number: element.number}) .assign({response: state[0].response, sms: state[0].msg}) .write(); let user = element.clientId; try { await client.users.cache.get(user).send(`Your message for number ${element.number} is ${element.sms}`); } catch(error){ console.log(error) } } }); }, 3000); console.log('Ready!');});一切正常,它只是将旧文件保存在内存中。
1 回答

梵蒂冈之花
TA贡献1900条经验 获得超5个赞
为了解决这个问题,我通过了我的const database = require('./db.json');
let. 然后我集成了 fs 以便我可以清除缓存:
setInterval(function() { delete require.cache[require.resolve('./db.json')] database = require('./db.json');
问题解决了!
添加回答
举报
0/150
提交
取消