我正在做的是注册用户并使用expressjs中的新userId创建会话。直到这一点,我做得对,它的工作原理。但我需要为我的io使用相同的会话变量。 客户端:
var userRegisterData={
url:baseURL+'userRegisterData',
dataServer:{
username: user.username,
useremail: user.useremail,
userpassword: user.userpassword
}
}
runAjax.runajax_function(userRegisterData,function(userData){
console.log(userData.process);
});
socket.on('getMyData', function(data){
$scope.userData = data;
console.log($scope.userData);
});
服务器端: ExpressJs
app.post('/userRegisterData', function(req, res) {
//db activities
session.userId = result.userId;
//so here i set the session variable from db
});
io.on('connection', function(socket) {
//db activities using session.userId (I need the session.userId for db purpose)
socket.emit('getMyData', result);
});
现在,当我第一次启动服务器时,我收到userId is undefined
中io.on
的错误
我能理解io.on
正在app.post
之前执行。我是表达js和socket.io的新手,我尝试使用if,这解决了我第一次启动服务器时没有出现任何错误的问题,但它再也不能用作io.on
范围已经被处决了。
我需要实现的是,如果会话变量在快速会话中不存在,那么让io.on不做任何事情,当会话变量可用时,只有它触发。