Я создаю приложение, которое создает чат.Получая список активных пользователей, я написал вспомогательный код для добавления пользователя с активным текущим сеансом в массив комнат. Мой файл helpers.js имеет следующую функцию: helpers.js
let addUserToRoom = (allrooms, data, socket) => {
let getRoom = findRoomById(allrooms, data.roomID);
if (getRoom !== undefined) {
let userID = socket.request.session.passport.user;
let checkUser = getRoom.users.findIndex((element, index, array) => {
if(element.userID === userID) {
return true;
} else {
return false;
}
});
if (checkUser > -1) {
getRoom.users.splice(checkUser, 1);
}
getRoom.users.push({
socketID: socket.id,
userID,
user: data.user,
userPic: data.userPic
});
socket.join(data.roomID);
return getRoom;
}
}
Этот код выше обнаруживаетнаходится ли пользователь уже в комнате.если да, то удалите этого пользователя и перечитайте его в присоединенный список пользователей.но при тестировании этого кода я получаю следующую ошибку:
/home/shacker/Programs20182/aanjs/chatcat/app/helpers/index.js:102
let userID = socket.request.session.passport.user;
^
TypeError: Cannot read property 'user' of undefined
at Object.addUserToRoom (/home/shacker/Programs20182/aanjs/chatcat/app/helpers/index.js:102:54)
at Socket.socket.on.data (/home/shacker/Programs20182/aanjs/chatcat/app/socket/index.js:29:30)
at Socket.emit (events.js:189:13)
at /home/shacker/Programs20182/aanjs/chatcat/node_modules/socket.io/lib/socket.js:528:12
at process._tickCallback (internal/process/next_tick.js:61:11)
Есть ли другой способ получить переменную userID из сеанса или помочь мне устранить эту ошибку ...