亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

未考慮 NodeJS 的 json 更改

未考慮 NodeJS 的 json 更改

慕斯709654 2022-11-03 10:20:33
我來找你是因為我正在嘗試在 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');

問題解決了!


查看完整回答
反對 回復 2022-11-03
  • 1 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號