Javascript TypeError:无法在socket.handshake调用未定义的方法“get”

Javascript TypeError:无法在socket.handshake调用未定义的方法“get”,javascript,node.js,asynchronous,socket.io,authorize,Javascript,Node.js,Asynchronous,Socket.io,Authorize,我正在尝试将socket.io代码从0.9v重建为1.x。 Express和socket.io是最新版本 因此,错误是:无法在处调用未定义的方法“get” 续: function(session, callback) { if (!session) { callback(new HttpError(401, "No session"));

我正在尝试将socket.io代码从0.9v重建为1.x。 Express和socket.io是最新版本

因此,错误是:无法在处调用未定义的方法“get”

续:

function(session, callback) {

                            if (!session) {
                                callback(new HttpError(401, "No session"));
                            }

                            handshake.session = session;
                            loadUser(session, callback);
                        },
                        function(user, callback) {
                            if (!user) {
                                callback(new HttpError(403, "Anonymous session may not connect"));
                            }

                            handshake.user = user;
                            callback(null);
                        }

                    ], function(err) {.....});
                next();
                });

        io.on('connection', function(socket) { ... };
返回io; };

好的,请帮帮我,谢谢

我将如何调试这个。 无法对未定义的对象调用方法

所以我们知道调用的是什么。get尚未创建。在这种情况下:

var username = socket.handshake.user.get('username'); //<----here
因此,如果您没有访问ide调试器的权限,我要做的第一件事是

控制台.日志套接字

如果有数据的话

console.logsocket.handshake

如果有数据的话

console.logsocket.handshake.user

如果有数据,检查它是否有GET方法

无论如何,我的假设是socket.handshake.user尚未定义。
设置/公开该文件的代码在哪里?

ok。我签入了控制台调试器socket.handshake-它有一些数据,但socket.handshake.user没有任何错误,只有新字符串。和socket.handshake.user.get-无法读取未定义的属性“get”。设置/公开该属性的代码在哪里在functionuser中,回调{handshake.user=user;callbacknull;}确定。在函数user中,在握手后回调{…}。user=user我们有握手。user.username=correct username。现在,我需要在io.on'connection',functionsocket中正确设置var用户名{帮帮我!我可以看到你设置了user.username,但是你没有设置.get方法,也许我需要看看socket方法,但是如果你个人设置了user对象,那么你需要设置get函数,你可以这样做来显示我的意思handshake.user.username=functiondata{console.log'hello',data}`
function(session, callback) {

                            if (!session) {
                                callback(new HttpError(401, "No session"));
                            }

                            handshake.session = session;
                            loadUser(session, callback);
                        },
                        function(user, callback) {
                            if (!user) {
                                callback(new HttpError(403, "Anonymous session may not connect"));
                            }

                            handshake.user = user;
                            callback(null);
                        }

                    ], function(err) {.....});
                next();
                });

        io.on('connection', function(socket) { ... };
var username = socket.handshake.user.get('username'); //<----here