Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何循环使用mysql数据库中的消息并正确显示它们_Javascript_Mysql_Node.js_Socket.io - Fatal编程技术网

Javascript 如何循环使用mysql数据库中的消息并正确显示它们

Javascript 如何循环使用mysql数据库中的消息并正确显示它们,javascript,mysql,node.js,socket.io,Javascript,Mysql,Node.js,Socket.io,我正在建立一个聊天程序 每次用户发送消息时,它都会存储在一个名为“messages”的表中。该表如下所示: 当用户断开连接,然后再次连接时,旧消息的显示方式应与发送时相同。 在图像中,您可以看到收到的消息为灰色,其他消息为蓝色: 当用户连接时,我使用以下代码检索旧邮件: //检索对话 client.on(“retrieveConversation”,函数(数据){ var peopleName=data.result.conversation\u接收器; var retrievedMess

我正在建立一个聊天程序

每次用户发送消息时,它都会存储在一个名为“messages”的表中。该表如下所示:

当用户断开连接,然后再次连接时,旧消息的显示方式应与发送时相同。 在图像中,您可以看到收到的消息为灰色,其他消息为蓝色:

当用户连接时,我使用以下代码检索旧邮件:

//检索对话
client.on(“retrieveConversation”,函数(数据){
var peopleName=data.result.conversation\u接收器;
var retrievedMessages=[];
connection.query(“从`messages`中选择*,其中`message_key`='”+data.result.conversation_key+”,函数(错误、结果、字段){
如果(错误){
console.log(错误);
返回;
} 
如果有的话(结果){
日志(“消息:”,结果);
} 
});
log(“检索对话”,peopleName);
emit(“addConversationForSelf”,peopleName);
});类似这样的代码

var results = [{body: 'Hi', userfrom_id: 'abc'}, {body: 'Hi', userfrom_id: 'xyz'}, {body: 'Hi', userfrom_id: 'abc'}]; //this is your result from database
var currUser_id = 'abc'; //this is current user

//loop
results.forEach(function(packet){if(packet.userfrom_id == currUser_id){console.log('my packet');}else{console.log('other user packet')}});

在循环时,您是否知道userfrom_id以区分“ownMessage”和“newMessageToOthers”?抱歉@vabii,我不理解您的问题?userfrom_id与消息一起存储。我已经用消息表的外观图像更新了我的问题。要知道RowDataPacket是属于您还是属于任何其他用户,您需要从_id了解您的用户,对吗?我问你是否有这些信息,这样在循环过程中,你可以调用上面两个“client.emit”调用中的一个。如果我的问题还不清楚,请告诉我?是的。当用户发送消息时,他们的id将添加到每条消息中。