我试图编程不和bot货币系统,我试图将数据保存在。json文件中,我遇到了这个问题。如果我使用fs.readFilSync(<filename>)
命令,我会替换整个文件,所以我尝试在替换之前选择我想要编辑的部分,而不选择我想要编辑的部分。
JSON文件应该是这样的:
{ <userid>: <currency>, <userid>: <currency>, <userid>: <currency>, ...}
我试着编写的程序看起来是这样的:
const fs = require('fs');
const mA = message.author.id;
const currency = JSON.parse(fs.readFileSync('<filename>.json'));
let a = message.author.id
var sampleObject = {[mA] : currency[a] + 1,}, !currency[a] // !! here is the problem!!
fs.writeFile("<filname>.json", JSON.stringify(sampleObject, null, 4), (err) => {
if (err) {
console.error(err); return};
message.channel.send(`add +1 point now you got ${currency[a] + 1} points`)
});
我写了"//!!这就是问题所在!!"是我想要否定的问题,除了这个。我的问题是,有没有一种方法可以表达除了这个之外的所有内容。
正如我在评论中提到的,假设我正确理解了您的问题,您只需要获取JSON文件的当前内容,将其解析为对象文本,只修改要修改的值,然后保存新修改的对象。下面是一个例子:
const fs = require("fs");
let currency = JSON.parse(fs.readFileSync("filename.json"));
//Example - Add 2 to the message author's currency:
currency[message.author.id] += 2;
//Example - Subtract 1 from the message author's currency:
currency[message.author.id] -= 1;
//You can do the same with multiplication (`*=`), division (`/=`), and mod (`%=`)
fs.writeFileSync("filename.json", JSON.stringify(currency, null, 4));
在未来,你真的需要在你的问题中更详细和准确地说明你的问题是什么,你想要什么等等。很难从你的问题和奇怪的、不正确的"否定"中理解你想要什么。语法。