首页 > 解决方案 > 未捕获的类型错误:无法读取 null Flask-SocketIO 的属性“附加”

问题描述

我正在尝试按照教程https://www.youtube.com/watch?v=uJC8A_7VZOA创建一个 flaks-socketio 聊天应用程序

我正在尝试在 div 中打印“已加入聊天”或类似内容

聊天.html javascript

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
<script>
    const socket = io.connect("http://127.0.0.1:5000");

    socket.on('connect', function(){
        socket.emit('join_room',{
            username: "{{ username }}",
            room: "{{ room}}"
        })
    })

    socket.on('join_room_announcement', function (data) {
        console.log(data);
        if (data.username !== "{{ username }}") {
            const newNode = document.createElement('div');
            newNode.innerHTML = `<b>${data.username}</b> has joined the room`;
            document.getElementsByName('messages').append(newNode);
        }
    });

</script>

我不包括 css 代码,因为我想这不是必需的。

这是我的app.py

@app.route('/chat')
def chat():
    username = request.args.get('username')
    room = request.args.get('room')

    if username and room:
        return render_template('chat.html',username=username,room=room)
    else:
        return "Bad/incomplete Request Errror Code 405/400"

@socketio.on('join_room')
def handle_join_room_event(data):
    print("{} has joined room {}".format(data["username"],data["room"]))
    # logging.info("{} has joined room {}".format(data["username"],data["room"]))
    join_room(data['room'])
    socketio.emit('join_room_announcement', data)


if __name__ == '__main__':
    socketio.run(app,debug=True)

我收到错误 Uncaught TypeError: document.getElementsByName(...).append is not a function

我附上截图以供参考: 在此处输入图像描述

标签: javascriptpythonflaskflask-socketio

解决方案


原来我是个白痴。我不得不改变

<div id = messages> 到 <div id =messages>


推荐阅读