en realidad, este código funciona como se esperaba pero, si introduzco un ID de usuario diferente, aún sobrescribe el usuario existente (no el archivo) y la idea era agregar otro
const user = userId; const userObj = {[user]:valueX}; words.users = userObj; fs.writeFileSync('words.json', JSON.stringify(words,null,2), finished);la entrada proviene de aquí (readline-sync)
let userId = input.question('Enter yourUserId: ');y sí, estoy leyendo el archivo primero
let words = JSON.parse(fs.readFileSync('words.json'));const userObj = {[user]:valueX}; words.users = userObj;
El objeto que asigne a words.users debe incluir todos los usuarios existentes y no solo el nuevo.
const userObj = {...words.users, [user]:valueX };Desde su código parece que words.users es un objeto y en ese caso
if(!words.users) words.users = {}; // Make sure the words users are created words.users[user] = valueX;Esto le daría un objeto words.users que se vería así
{user1: valueX1, user2: valueX2}Y podrías acceder así
console.log(words.users[user1]); // valueX1