【发布时间】:2026-02-24 03:15:01
【问题描述】:
我正在为查询而苦苦挣扎。我一直在搜索很多,我发现的唯一相关帖子没有答案。
row[0] 返回未定义,我似乎无法找出原因..
信息:
如前所述,logger.warn(rows[0]) 返回undefined
rows.length 返回0
logger.warn(pool.escape(hash)) 返回正确的哈希值(与 DB 相同)
logger.warn(rows[0].hash) 返回undefined
这是控制台/日志文件中的错误:TypeError: Cannot read property 'hash' of undefined
socket.on('hash', function(hash) {
query('SELECT * FROM `members` WHERE `hash` = '+pool.escape(hash),
function(err, rows) {
logger.warn(rows[0]) // returns "undefined"
if((err) || (!rows.length)) return socket.disconnect();
}
编辑:查询功能
function query(sql, callback) {
if (typeof callback === 'undefined') {
callback = function() {};
}
pool.getConnection(function(err, connection) {
if(err) return callback(err);
logger.info('DB Connection ID: '+connection.threadId);
connection.query(sql, function(err, rows) {
if(err) return callback(err);
connection.release();
return callback(null, rows);
});
});
}
编辑:调试日志
https://gyazo.com/858796b81c674ba816f974039eea1c09
编辑:断开连接时
socket.on('disconnect', function() {
logger.warn('Socket disconnect');
io.sockets.emit('message', {
type: 'logins',
count: Object.size(io.sockets.connected)
});
delete users[user.email];
})
【问题讨论】:
-
什么是哈希?似乎哈希是未定义的。
-
在
hash事件的广播过程中,你在发送哈希吗? -
Hash已定义,并返回正确的值。 @Jiro90 编辑: 是的@RIYAJKHAN,我是,那部分工作正常。 -
什么是
query?hash是数字吗? -
@robertklep,对不起,我没有包括在内。现在编辑帖子。哈希是一个电子邮件地址。
test@mail.com返回test%40mail.com
标签: javascript mysql database web socket.io