2017-04-23 72 views
1

我试图将一个对象从我的套接字文件传递到我的html文件并打印出位于其中的函数值。但我不断收到此错误 遗漏的类型错误:无法读取属性未定义使用socketIO无法获取对象内部的值

socket.js的“证实”在HTML文件中

function querys() { 
       var queryString1 = 'SELECT contacts.id, userId, contactId, confirmed, username FROM contacts LEFT JOIN users on contacts.contactId = users.id WHERE userId = ?'; 
       var buddy = new Object(); 

       connection.query(queryString1,[id], function(err, rows, fields) {//look for all requests started by another user 
        if (err) throw err; 
        for (var i in rows) { 
         buddy[i] = (
          { 
           id : rows[i].contactId, 
           username : rows[i].username, 
           sender : false, 
           connectionId : rows[i].id, 
           confirmed : function() { 
            if(rows[i].confirmed == 0) 
             return false; 
            else 
             return true; 
           } 
          } 
         ); 
        } 
        socket.emit('print', buddy);      
       }); 
      } 

功能

socket.on('print', function(buddy) { 
        alert(buddy[0].confirmed()); 
       } 

奇怪的是,它的打印该对象的其他值,如果你问它,但我似乎不能打印出对象内的函数。

回答

0

您不能通过socket.io传输函数,只能传输json数据。我建议只发送confirmed作为布尔值。