表示会话的用户名更改,并加入了最新的会话

时间:2018-12-05 21:40:38

标签: node.js express session

我需要一些帮助。我需要设置用户名,并且不要更改它。但是问题是每次我与新用户一起加入时,都会将其用户名添加到会话中,然后所有用户都键入最新加入的用户身份。如何解决这个问题呢 ?这是代码:

let users = [];
let username;

app.post('/join-server', async(req, res) => {
    username = await req.body.username;
    users.push(username);
    req.session.username = username;
    res.redirect('/chatroom');
});

socket.on('message-sent', (data) => {
   io.emit('message-broadcast', ({
            message: data.message,
            username: username
        }));
    });

1 个答案:

答案 0 :(得分:0)

您的username变量已在全局范围内声明。在您的/join-server处理程序的正文中声明它:

app.post('/join-server', async(req, res) => {
    const username = await req.body.username;
    users.push(username);
    req.session.username = username;
    res.redirect('/chatroom');
});