有什么办法可以停止覆盖 json 文件吗?
Is there any way to stop overwriting the json file?
实际上这段代码按预期工作,但是,如果我输入不同的用户 ID,它仍然会覆盖现有用户(而不是文件),我的想法是添加另一个用户 ID
const user = userId;
const userObj = {[user]:valueX};
words.users = userObj;
fs.writeFileSync('words.json', JSON.stringify(words,null,2), finished);
输入来自这里(readline-sync)
let userId = input.question('Enter yourUserId: ');
是的,我先阅读文件
let words = JSON.parse(fs.readFileSync('words.json'));
const userObj = {[user]:valueX};
words.users = userObj;
您分配给 words.users
的对象需要包括所有现有用户,而不是 仅 您的新用户。
const userObj = {...words.users, [user]:valueX };
从您的代码看来 words.users 是一个对象,在这种情况下
if(!words.users) words.users = {}; // Make sure the words users are created
words.users[user] = valueX;
这会给你一个 words.users 看起来像这样的对象
{user1: valueX1, user2: valueX2}
你可以这样访问
console.log(words.users[user1]); // valueX1
实际上这段代码按预期工作,但是,如果我输入不同的用户 ID,它仍然会覆盖现有用户(而不是文件),我的想法是添加另一个用户 ID
const user = userId;
const userObj = {[user]:valueX};
words.users = userObj;
fs.writeFileSync('words.json', JSON.stringify(words,null,2), finished);
输入来自这里(readline-sync)
let userId = input.question('Enter yourUserId: ');
是的,我先阅读文件
let words = JSON.parse(fs.readFileSync('words.json'));
const userObj = {[user]:valueX}; words.users = userObj;
您分配给 words.users
的对象需要包括所有现有用户,而不是 仅 您的新用户。
const userObj = {...words.users, [user]:valueX };
从您的代码看来 words.users 是一个对象,在这种情况下
if(!words.users) words.users = {}; // Make sure the words users are created
words.users[user] = valueX;
这会给你一个 words.users 看起来像这样的对象
{user1: valueX1, user2: valueX2}
你可以这样访问
console.log(words.users[user1]); // valueX1