来自 MySQL 数据库的查询在 node.js 和 JSON.stringify() 中返回 [Object] [Object] 似乎不起作用

Posted

技术标签:

【中文标题】来自 MySQL 数据库的查询在 node.js 和 JSON.stringify() 中返回 [Object] [Object] 似乎不起作用【英文标题】:Query from MySQL's database returns [Object] [Object] in node.js and JSON.stringify() do not seem to work 【发布时间】:2020-01-28 23:30:24 【问题描述】:

我正在使用 mysql 数据库并创建了存储来自我的 Discord Bot 的用户字符名称的表。

我希望我的机器人在使用命令后在 Discord 上显示此列表,但它只返回 [object Object]

我尝试了JSON.stringify(),但它不起作用。还有什么我不知道的吗?

con.query (`SELECT Name FROM $message.author.usernamelist`, (err, rows) => 
         if(err) throw err;

         JSON.stringify(rows);
         message.reply(rows);

有无stringify结果如图]

【问题讨论】:

附带说明,您的代码容易受到a SQL injection attack 的攻击。 【参考方案1】:

您应该将行数据保存在某个变量中。更新代码后:

con.query (`SELECT Name FROM $message.author.usernamelist`, 
            (err, rows, fields) => 
                  if(err) throw err;
                  rows = JSON.stringify(rows);
                  message.reply(rows);

【讨论】:

我已经尝试过了,但显然没有,它就像一个魅力,谢谢!如果我可以再问一个问题:它完美地工作并显示:“Name”:“X” 有没有办法只显示该行的值,例如只显示“X”而不显示“Name:”? 谢谢,有。例如,您需要在对对象进行字符串处理(通过循环或用于处理对象的模块)之前对其进行处理,然后将所有值放入数组中,然后发送数组。

以上是关于来自 MySQL 数据库的查询在 node.js 和 JSON.stringify() 中返回 [Object] [Object] 似乎不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX 在 Node.js 上进行数据库查询

如何在单个查询中返回 node.js mysql 中的嵌套 json

使用带有 Javascript 的 MySQL (node.js)

Node.js - Http get 不会在 Postman 或浏览器中显示来自 MongoDb 查询的数据

node.js 同步 mysql 查询

在 node.js/angular 应用程序中查询来自不同主机的数据时,如何遵守访问控制起源异常? [复制]