基本上,我正在尝试使用 redisJSON 将我的应用程序的 JSON 存储在 redis 中。在我修改和更新 json 的项目中,我在这里和那里有不同的功能。现在,当我尝试在 redis 中存储和更新值时,我必须不断复制这些值以进行更改,然后将其更新回 redis。这个过程有什么替代方法吗?
const addUser = async () => {
try {
const USERS_KEY = 'users';
let mainUsers;
mainUsers = await redisClient.json.get(USERS_KEY, {
path: '.',
});
if (!mainUsers) {
await redisClient.json.set(USERS_KEY, '.', {});
mainUsers = await redisClient.json.get(USERS_KEY, {
path: '.',
});
}
const mainUsersCopy = { ...mainUsers };
console.log('The actual object we need', mainUsersCopy);
const newUser = {
socketId: 123,
roomId: 456,
teamName: teamA,
rank: 69,
userName: 'X'
};
mainUsersCopy[userName] = newUser;
await redisClient.json.set(USERS_KEY, '.', mainUsersCopy);
return { status: 2, userObj: mainUsersCopy[userName] };
} catch (err) {
console.log(err);
}
};
我已经给出了上面的一个例子,基于这个例子你们可以为我提供一个不使用mainUsersCopy的解决方案。仅供参考,控制台记录我们得到的mainUsers:
mainUsers is here [object Object]
这就是mainUsers被解构的原因。提前致谢。