Javascript,您的';魔术';数据来自哪里?
在Java编程语言中,方法中可以使用的所有信息都必须是类的一部分,或者通过参数传递,我对JavaScript神奇地生成非常重要的数据的位置感到非常困惑 在本例中,我使用Socket.IO并尝试在连接后调用登录方法,现在我可以使用匿名函数,但我个人认为它们真的很难看 这是我的密码:Javascript,您的';魔术';数据来自哪里?,javascript,json,node.js,sockets,socket.io,Javascript,Json,Node.js,Sockets,Socket.io,在Java编程语言中,方法中可以使用的所有信息都必须是类的一部分,或者通过参数传递,我对JavaScript神奇地生成非常重要的数据的位置感到非常困惑 在本例中,我使用Socket.IO并尝试在连接后调用登录方法,现在我可以使用匿名函数,但我个人认为它们真的很难看 这是我的密码: socketIO.sockets.on('connection', function(socket) { console.log("Connection maid."); socket.on('logi
socketIO.sockets.on('connection', function(socket) {
console.log("Connection maid.");
socket.on('login', login);
});
function login(json) {
sqlConnection.query('select * FROM Accounts', function(err, rows, fields) {
if(err) throw err;
for(var row in rows) {
if(rows[row].Username == json.username) {
console.log("Exists");
socket.emit('login', {nuel: ''});
}
}
});
}
正如您所看到的,login
函数在套接字接收到登录消息时被调用,json对象被神奇地传递给它。我不知道它来自何处,也不知道它是由什么产生的,也不知道如何将附加参数传递给该方法,因为它会破坏/覆盖magic
数据
我遇到的错误是,socket在当前上下文中不存在,因为它没有传递给登录函数,但是当我尝试传递它时,保存为json
的对象完全不存在了。。。。这里的数据来自哪里
我完全不明白这一点,我怎样才能传递这些信息来调用这个方法,而不完全破坏一切 您能否创建一个名为“socket”的全局变量,将其分配给一个socket对象,然后将事件绑定到该对象,以便可以从该范围内的任何函数访问它?另外一个变量仅用于title:)