Как написать синхронизацию json с extra-fs ⇐ Javascript
-
Гость
Как написать синхронизацию json с extra-fs
У меня проблема, когда я пишу разные значения с помощью extra-fs. Я тестирую игру в казино на 20 одновременных балансах, но, похоже, это не работает, когда я пишу это в своем json.
Итак, как только я запускаю свою программу, она выполняет 20 файлов, каждый со своей тактикой ставок, и как только я выигрываю или проигрываю, она записывает их в мой json. Единственный недостаток в том, что как только я его запускаю, он не работает должным образом. он плохо пишет и не меняет все значения одновременно.
Вот моя программа, которая записывает 20 значений одновременно:
async updateJson(mainValue, newValue) { if (!this.getJson) return ":("; пытаться { const data = await fs.readFile(this.getJson, 'utf8'); const BalanceData = JSON.parse(данные); BalanceData [mainValue] = новое значение; await fs.writeFile(this.getJson, JSON.stringify(balanceData, null, 2), 'utf8'); } поймать (ошибиться) { console.error("Ошибка:", err); } } вот json перед выполнением:
{ «Баланс1»: 800, «Баланс2»: 800, «Баланс3»: 800, «Баланс4»: 800, «Баланс5»: 800, «Баланс6»: 800, «Баланс7»: 800, «Баланс8»: 800, «Баланс9»: 800, «Баланс10»: 800, «Баланс11»: 800, «Баланс12»: 800, «Баланс13»: 800, «Баланс14»: 800, «Баланс15»: 800, «Баланс16»: 800, «Баланс17»: 800, «Баланс18»: 800, «Баланс19»: 800, «Баланс20»: 800 } после выполнения:
{ «Баланс1»: 800, «Баланс2»: 800, «Баланс3»: 800, «Баланс4»: 800, «Баланс5»: 800, «Баланс6»: 800, «Баланс7»: 800, «Баланс8»: 800, «Баланс9»: 800,05, «Баланс10»: 800,1, «Баланс11»: 800, «Баланс12»: 800, «Баланс13»: 800, «Баланс14»: 800, «Баланс15»: 800, «Баланс16»: 800, «Баланс17»: 800, «Баланс18»: 800, «Баланс19»: 800, «Баланс20»: 800 }00 } и моя ошибка:
Ошибка: SyntaxError: ./Balance.json: Неожиданное число в JSON в позиции 398 в JSON.parse () в Object.readFileSync (C:\Users\#\Desktop\SimulatorBetProject\node_modules\jsonfile\index.js:52:17) в Bet.retrieveData (C:\Users\#\Desktop\SimulatorBetProject\bloCasino\bet\mainBet.js:12:36) в Americaine.bettingTactics (C:\Users\#\Desktop\SimulatorBetProject\bloCasino\bet\crash\americaine.js:21:46) в Bet.betAlgo (C:\Users\#\Desktop\SimulatorBetProject\bloCasino\bet\mainBet.js:61:33) в startBetting (C:\Users\#\Desktop\SimulatorBetProject\test.js:67:16) в startScript (C:\Users\#\Desktop\SimulatorBetProject\test.js:239:11) в процессе.processTicksAndRejections (узел: внутренний/процесс/задача_очереди: 95:5) в async C:\Users\#\Desktop\SimulatorBetProject\test.js:37:17 Ошибка: SyntaxError: ./Balance.json: неожиданное число в JSON в позиции 398. в JSON.parse () в Object.readFileSync (C:\Users\#\Desktop\SimulatorBetProject\node_modules\jsonfile\index.js:52:17) в Bet.retrieveData (C:\Users\#\Desktop\SimulatorBetProject\test\bet\mainBet.js:12:36) в contreAlembert.bettingTactics (C:\Users\#\Desktop\SimulatorBetProject\test\bet\crash\contreAlembert.js:15:46) в Bet.betAlgo (C:\Users\#\Desktop\SimulatorBetProject\test\bet\mainBet.js:61:33) в startBetting (C:\Users\#\Desktop\SimulatorBetProject\test.js:77:16) в startScript (C:\Users\#\Desktop\SimulatorBetProject\test.js:239:11) в процессе.processTicksAndRejections (узел: внутренний/процесс/задача_очереди: 95:5) в async C:\Users\#\Desktop\SimulatorBetProject\test.js:37:17...
У меня проблема, когда я пишу разные значения с помощью extra-fs. Я тестирую игру в казино на 20 одновременных балансах, но, похоже, это не работает, когда я пишу это в своем json.
Итак, как только я запускаю свою программу, она выполняет 20 файлов, каждый со своей тактикой ставок, и как только я выигрываю или проигрываю, она записывает их в мой json. Единственный недостаток в том, что как только я его запускаю, он не работает должным образом. он плохо пишет и не меняет все значения одновременно.
Вот моя программа, которая записывает 20 значений одновременно:
async updateJson(mainValue, newValue) { if (!this.getJson) return ":("; пытаться { const data = await fs.readFile(this.getJson, 'utf8'); const BalanceData = JSON.parse(данные); BalanceData [mainValue] = новое значение; await fs.writeFile(this.getJson, JSON.stringify(balanceData, null, 2), 'utf8'); } поймать (ошибиться) { console.error("Ошибка:", err); } } вот json перед выполнением:
{ «Баланс1»: 800, «Баланс2»: 800, «Баланс3»: 800, «Баланс4»: 800, «Баланс5»: 800, «Баланс6»: 800, «Баланс7»: 800, «Баланс8»: 800, «Баланс9»: 800, «Баланс10»: 800, «Баланс11»: 800, «Баланс12»: 800, «Баланс13»: 800, «Баланс14»: 800, «Баланс15»: 800, «Баланс16»: 800, «Баланс17»: 800, «Баланс18»: 800, «Баланс19»: 800, «Баланс20»: 800 } после выполнения:
{ «Баланс1»: 800, «Баланс2»: 800, «Баланс3»: 800, «Баланс4»: 800, «Баланс5»: 800, «Баланс6»: 800, «Баланс7»: 800, «Баланс8»: 800, «Баланс9»: 800,05, «Баланс10»: 800,1, «Баланс11»: 800, «Баланс12»: 800, «Баланс13»: 800, «Баланс14»: 800, «Баланс15»: 800, «Баланс16»: 800, «Баланс17»: 800, «Баланс18»: 800, «Баланс19»: 800, «Баланс20»: 800 }00 } и моя ошибка:
Ошибка: SyntaxError: ./Balance.json: Неожиданное число в JSON в позиции 398 в JSON.parse () в Object.readFileSync (C:\Users\#\Desktop\SimulatorBetProject\node_modules\jsonfile\index.js:52:17) в Bet.retrieveData (C:\Users\#\Desktop\SimulatorBetProject\bloCasino\bet\mainBet.js:12:36) в Americaine.bettingTactics (C:\Users\#\Desktop\SimulatorBetProject\bloCasino\bet\crash\americaine.js:21:46) в Bet.betAlgo (C:\Users\#\Desktop\SimulatorBetProject\bloCasino\bet\mainBet.js:61:33) в startBetting (C:\Users\#\Desktop\SimulatorBetProject\test.js:67:16) в startScript (C:\Users\#\Desktop\SimulatorBetProject\test.js:239:11) в процессе.processTicksAndRejections (узел: внутренний/процесс/задача_очереди: 95:5) в async C:\Users\#\Desktop\SimulatorBetProject\test.js:37:17 Ошибка: SyntaxError: ./Balance.json: неожиданное число в JSON в позиции 398. в JSON.parse () в Object.readFileSync (C:\Users\#\Desktop\SimulatorBetProject\node_modules\jsonfile\index.js:52:17) в Bet.retrieveData (C:\Users\#\Desktop\SimulatorBetProject\test\bet\mainBet.js:12:36) в contreAlembert.bettingTactics (C:\Users\#\Desktop\SimulatorBetProject\test\bet\crash\contreAlembert.js:15:46) в Bet.betAlgo (C:\Users\#\Desktop\SimulatorBetProject\test\bet\mainBet.js:61:33) в startBetting (C:\Users\#\Desktop\SimulatorBetProject\test.js:77:16) в startScript (C:\Users\#\Desktop\SimulatorBetProject\test.js:239:11) в процессе.processTicksAndRejections (узел: внутренний/процесс/задача_очереди: 95:5) в async C:\Users\#\Desktop\SimulatorBetProject\test.js:37:17...
Мобильная версия