如何访问 RowDataPacket mysql-node.js

Posted

技术标签:

【中文标题】如何访问 RowDataPacket mysql-node.js【英文标题】:How to access RowDataPacket mysql-node.js 【发布时间】:2016-11-03 03:18:56 【问题描述】:
connection.query('
SET @update_id := 0; 
UPDATE relations set x1 = ?, y1 = ?, id = (SELECT @update_id := id) WHERE element_to =?;
SELECT @update_id;',[data.x2,data.y2,id],function(err,result)
if(err)console.error(err);
elseconsole.log(result);console.log(result.@update_id);
);

我从查询执行中得到以下结果:

[ RowDataPacket 
  '@update_id': 'WAbWA1WA5WA2WA8WAdWA4WA9'  ] ]

如何访问 @update_id 字段以将值存储在变量中。我知道这些是对象,我尝试了以下方法来访问它们,如下所示:

results.@update_id; 

但是当我尝试记录该值时,我得到了未定义。如何获得价值?

【问题讨论】:

How to access a RowDataPacket object的可能重复 【参考方案1】:

只需将结果转换为数组,然后您就可以轻松访问数据,我这样做解决了

let res = JSON.parse(JSON.stringify(result));

【讨论】:

【参考方案2】:

使用console.log(JSON.stringify(result));

如果你想获取变量的访问数据

var data = JSON.stringify(result[0].@update_id)
console.log(data);

你不能在 var E.G 上使用索引

console.log(data[0].@update_id)错了

【讨论】:

【参考方案3】:

试试这个:

results[0].@update_id

【讨论】:

以上是关于如何访问 RowDataPacket mysql-node.js的主要内容,如果未能解决你的问题,请参考以下文章

将rowdatapacket转换为数组,如何将mysql node.js api rowdatapacket转换为数组,将字符串转换为数组

eggjs 里链接 mysql 返回数据有 RowDataPacket 应该怎么处理?

nodejs mysql 返回数据中带有rowdatapacket是怎么回事

Node.js使用MySQL数据库中对RowDataPacket对象的使用

nodejs 连接MySQL后,输出数据带有RowDataPacket中括号大括号怎么去掉?

nodejs操作mysql取出来的datatime与实际差8小时问题