Javascript 从Flask套接字检索消息将引发“分配中的左侧无效”

Javascript 从Flask套接字检索消息将引发“分配中的左侧无效”,javascript,socket.io,flask-socketio,Javascript,Socket.io,Flask Socketio,我正在尝试创建一个可以使用Flask socketio和Javascript加入的频道 我所有的调试语句都在启动,这表明一切都在初始化,但当我试图捕获从我的Flask/socket io路由发出的消息时,我假设该路由执行实际的房间更改,我得到未捕获的引用错误:在我的控制台中,引用JS文件let message=data.msg中的行的赋值的左侧无效;在本节中: socket.on('status', data => { let message = data.msg;

我正在尝试创建一个可以使用Flask socketio和Javascript加入的频道

我所有的调试语句都在启动,这表明一切都在初始化,但当我试图捕获从我的Flask/socket io路由发出的消息时,我假设该路由执行实际的房间更改,我得到未捕获的引用错误:在我的控制台中,引用JS文件let message=data.msg中的行的赋值的左侧无效;在本节中:

    socket.on('status', data => {
        let message = data.msg;
        document.querySelectorAll('#messages') += message;
    });
我尝试了各种方式来编写data.msg,例如,使用反勾号,例如${data.msg}被反勾号包围,好像是格式化字符串的一部分,等等,但没有任何效果。我读过这些文件,但在细节上却很少。在网上,似乎没有关于如何有效地做到这一点的例子。大多数人似乎都喜欢node.js,但我是一个喜欢烧瓶的人

我怎样才能加入我的房间,并且只在那个房间里聊天?我需要允许用户创建他们想要的数量

以下是Flask中的路线:

以下是附带的JS:

注意,错误发生在分配给消息div之前

编辑 解包错误会显示对io所需的缩小JS文件的多个引用。它位于layout.html的部分。中的放置导致严重错误,阻碍了所有套接字相关功能的开发

messages:134 Uncaught ReferenceError: Invalid left-hand side in assignment
    at r.socket.on.data (messages:134)
    at r.n.emit (socket.io.min.js:1)
    at r.onevent (socket.io.min.js:1)
    at r.onpacket (socket.io.min.js:1)
    at n.<anonymous> (socket.io.min.js:1)
    at n.emit (socket.io.min.js:1)
    at n.ondecoded (socket.io.min.js:1)
    at s.<anonymous> (socket.io.min.js:1)
    at s.n.emit (socket.io.min.js:1)
    at s.add (socket.io.min.js:2)
无效:document.querySelectorAll'messages'+=message

querySelectorAll'messages'将为您提供一个DOM元素列表

此外,元素id应该是唯一的,所以您可能应该使用document.querySelector'messages',所以只检索一个元素,而不是列表

不能通过这种方式直接向元素添加/concat文本。您可能正在寻找类似document.querySelector'messages.innerHTML+=message

var socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port);
if (!socket) console.log("Socket not connected!");

socket.on('connect', () => {
    console.log("socket connected");
    // after socket connect, configure channel button
    document.querySelectorAll('button').forEach(button => {
        button.onclick = () => {
            console.log("button click fired!");
            let username = localStorage["login"]
            let room = button.dataset.room;
            console.log("ChannelName" + room);
            socket.emit("join", {'username':username, "room":room});
        };
    });

    socket.on('status', data => {
        console.log("JOINED!")
        let message = data.msg;
        document.querySelectorAll('#messages') += message;
    });
messages:134 Uncaught ReferenceError: Invalid left-hand side in assignment
    at r.socket.on.data (messages:134)
    at r.n.emit (socket.io.min.js:1)
    at r.onevent (socket.io.min.js:1)
    at r.onpacket (socket.io.min.js:1)
    at n.<anonymous> (socket.io.min.js:1)
    at n.emit (socket.io.min.js:1)
    at n.ondecoded (socket.io.min.js:1)
    at s.<anonymous> (socket.io.min.js:1)
    at s.n.emit (socket.io.min.js:1)
    at s.add (socket.io.min.js:2)