NodeJS – MySQL查询错误

我的查询工作正常,如果人存在于我的表中,但如果他/她没有; NodeJS会给我一个错误。

function ClientConnected(remoteClient) { debugLog(remoteClient.name + " connected to the server. (ID: " + remoteClient.networkId + ") Loading player data.."); sql.query('SELECT * FROM `players` WHERE `character_name` = ?', [remoteClient.name], function(err, rows) { if(err) { debugLog('[DB] Error when loading ' + remoteClient.name + "'s (" + remoteClient.networkId + ') data: ' + err.code); } else { players[remoteClient.networkId] = { 'a_socialid' : rows[0].account_socialid, 'i_money' : rows[0].inventory_money, }; debugLog("Successfully loaded " + remoteClient.name + "'s (" + remoteClient.networkId + ") data.."); } }); } events.Add("ClientConnected", ClientConnected); 

如果某人join了表中已经存在的名字,它将加载玩家数据:

在这里输入图像说明

但是,如果没有,它给了我一个错误。 (TypeError,undefined,blabla)

在这里输入图像说明

你需要检查一个logging是否被返回。 也许这样的事情:

 if(err) { debugLog('[DB] Error when loading ' + remoteClient.name + "'s (" + remoteClient.networkId + ') data: ' + err.code); } else if (rows.length === 0) { debugLog('Nothing returned from database'); } else { // ... } 

据推测, err结果只会给你实际查询的反馈,而不是它返回的数据。