gpt4 book ai didi

javascript - 在多个浏览器中登录时如何更新更改的用户数据

转载 作者:行者123 更新时间:2023-11-30 06:18:46 25 4
gpt4 key购买 nike

我使用 express-session 中间件将用户 session 存储在 mongo 集合中。

当其中一个用户 session 执行更改时,这是更新所有用户 session 的最佳方式。

例如,如果用户更改 session A 中的电子邮件,我会立即更新它。但更改不适用于其余部分。

为清楚起见:浏览器 1 - 用户更改了电子邮件浏览器 2 - 重新加载页面,仍在获取旧数据

app.get('/change-email', async (req, res, next) => {
const userData = await User.findOneAndUpdate({ _id: req.session.user.id }, {
$set: {
email: req.body.email,
},
}, {
new: true,
});
req.session.user = {
id: userData._id,
email: userData.email,
username: userData.username,
name: userData.name,
};
});

我希望从 session A 执行的更改将分发到其余用户 session 。

作为该问题的解决方案之一,我认为搜索所有用户 session 并在每次用户数据(电子邮件、用户名、姓名等)更改时更新它们。

最佳答案

您可以在客户端使用 EventSource() 将数据从服务器流式传输到浏览器。

在服务器上向具有 MIME 类型 "text/event-stream" 的客户端发送一条或多条消息。例如,参见 How to read and echo file size of uploaded file being written at server in real time without blocking at both server and client? .

关于javascript - 在多个浏览器中登录时如何更新更改的用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54611851/

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