javascript - 未捕获的类型错误:无法读取 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
我附上截图以供参考: 在此处输入图像描述
解决方案
原来我是个白痴。我不得不改变
<div id = messages
> 到
<div id =messages>
推荐阅读
- discord.js - discord.js 模块问题使机器人崩溃
- video - x264 / libx264 : 只能将一个 I/P 帧用作 B 帧的参考吗?
- python - MongoDB - $set 和 $addToSet 之间的优先级
- javascript - 尝试对用户创建的输入值求和
- flutter - 如何在没有任何包的情况下访问音频元数据?
- c++ - 在这种情况下,调用我的函数之前 std::cout 会做什么?
- sql - 在过滤后仅选择 SQL 中的最小值包括变量?
- hyperledger-fabric - getHistoryForKey 的历史从何而来?
- c++ - 为什么我的小于运算符没有处理?
- sql - Oracle:将 DD-MM-YYYY 转换为 MON-YYYY