gpt4 book ai didi

javascript - 我应该如何管理 Node 中的内存数据?

转载 作者:行者123 更新时间:2023-12-03 10:38:23 33 4
gpt4 key购买 nike

我有一个在服务器端使用 Node、Express 和 Socket.io 构建的简单应用程序。当我的页面需要检索不会更改的数据时,它会查询我的 API,并使用 WebSockets 从服务器获取动态数据的实时更新。该应用程序允许一个人,即“主管”,向任意数量的“用户”(未经身份验证)发送问题,并在他们慢慢进入时查看他们的答案。用户使用 POST 请求将数据发送到服务器,这是通过 WebSocket 流式传输到 Supervisor。服务器将用户数据存储在一个简单的数组中,并使用数组中的项目(用户)到包含每个问题和答案的对象的 ES6 映射,如下所示:

class User {}
let users = [], qa = new Map();
io.on('connection', socket => {
let user = new User(socket.id);
users.push(user);
qa.set(user, {});
socket.on('question-answered', ({id, answer}) => {
let questionData = qa.get(user);
questionData[id] = answer;
qa.set(user, questionData);
});
});

这显然是一种非常原始的数据处理方式,但我认为不需要额外的复杂性。数据不需要在服务器崩溃或重新启动时持续存在(用户的问题和答案也存储在 localStorage 中),MongoDB 甚至 Redis 对于此类数据来说似乎有点大材小用。

所以我的问题是,我的处理方式正确吗?我还有什么遗漏的地方吗?我只想要一种简单的方法来将数据存储在内存中,并能够通过客户端 GET 请求和 socket.io 访问它。感谢您的帮助。

最佳答案

如果数组和映射为您提供了所需的数据访问类型,并且不需要崩溃持久性,并且您有适当的内存量来保存数据量,那么您就完成了。

除非您的需求(查询、持久性、性能、多用户、崩溃恢复、备份等)需要更复杂的东西,否则不需要更多。一个简单的陈词滥调适用于此:如果它没有损坏,就不需要修复。

关于javascript - 我应该如何管理 Node 中的内存数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28892648/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com