Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript推送在节点js中无法正常工作_Javascript_Arrays_Node.js_Object - Fatal编程技术网

javascript推送在节点js中无法正常工作

javascript推送在节点js中无法正常工作,javascript,arrays,node.js,object,Javascript,Arrays,Node.js,Object,这是我的房间 client.on("joinRoom", function(id) {//this id is roomid user wants to join room = new Room(roomid, client.id); rooms[roomid] = room; client.leave(roomid);//this is users own roomid which he leaves to join other room.

这是我的房间

   client.on("joinRoom", function(id) {//this id is roomid user wants to join
      room = new Room(roomid, client.id);
      rooms[roomid] = room;
      client.leave(roomid);//this is users own roomid which he leaves to join other room.
      room.addPerson(client.id);//adding person to the room's people array using his id, not his roomid.
      console.log(rooms[id].people);//list of people in room.
});
但我在人物数组中只得到一个用户,即用户ownid

function Room(roomid, owner) {
    this.roomid = roomid;
    this.owner = owner;
    this.people = [];
};
Room.prototype.addPerson = function(personID) {
    this.people.push(personID);
};
module.exports = Room;

为什么它不能将其他人的id推入阵列。

您正在根据每个请求创建一个新房间。在创建id之前,请检查该id所在的文件室是否已存在-

[ 'vYDNfK4VPchHFwXQPDiI' ]

我已放置房间=新房间(roomid,client.id);房间[房间ID]=房间;外部客户。打开(“joinRoom”…我刚刚向您展示了我是如何创建这个房间的。您不需要将它放在外面,因为它是第一次创建的。但是您需要进行检查,这样您就不会一直重新分配它。此外,您将获得“id”作为函数输入,但在匿名函数中的每个地方都使用roomid。这没有任何问题th推送功能。
client.on("joinRoom", function(id) {//this id is roomid user wants to join
      if(!rooms[id]) room[id] = new Room(id, client.id);
      client.leave(id);//this is users own roomid which he leaves to join other room.
      room.addPerson(client.id);//adding person to the room's people array using his id, not his roomid.
      console.log(rooms[id].people);//list of people in room.
});