Node.js 句柄socket.request.session.passport未定义

Node.js 句柄socket.request.session.passport未定义,node.js,socket.io,passport.js,Node.js,Socket.io,Passport.js,我正在编写一个node express应用程序,它通过socketio在用户之间提供一些交互。 有一个登录页面,我正在使用passport来处理会话。 我正在使用以下命令将passport会话导入socket.io: const io=require('socket.io')(https) io.use((socket,next)=>sessionware(socket.request,socket.request.res,bext) 其中,sessionware定义为: var sessio

我正在编写一个node express应用程序,它通过socketio在用户之间提供一些交互。 有一个登录页面,我正在使用passport来处理会话。 我正在使用以下命令将passport会话导入socket.io:

const io=require('socket.io')(https)
io.use((socket,next)=>sessionware(socket.request,socket.request.res,bext)
其中,
sessionware
定义为:

var sessionware=session({
genid:(请求)=>{
返回日期。现在()+“\uuid”()
},
存储:新文件存储(),
秘密:“不管怎样”,
resave:false,
saveUninitialized:true,
名称:“mis_id”,
})
然后在
onConnection
函数中,当应用程序获取套接字连接(
io.sockets.on('connection',onConnection)
)时调用该函数,我访问
socket.request.session.passport.user
以获取连接客户端的用户名。 该解决方案是可行的,但由于我仍在调试应用程序,我经常在本地环境中重新启动服务器,并且时不时地
socket.request.session.passport.user
返回
未定义的
,因此应用程序崩溃。
我真的不知道如何准确地重现这个bug,但同时我想知道:

问题 是否有任何方法可以通过以下方式处理此错误:

函数连接(套接字){
if(socket.request.session.passport.user==“未定义”){
//将客户端路由到登录页。。。?
}
}
如果你需要我的代码结构的具体细节,请告诉我…我只是想强调一下这个问题。我很乐意编辑我的帖子。 谢谢