javascript - 当从 NodeJs/Express 查询数据到 Mysql 时,努力理解
问题描述
当我从 NodeJS 执行以下查询时读取返回的数据时,我感到很困惑。
connection.query("SELECT * FROM users WHERE email=?;", [x1.Email], function (
err,
results
) {
// before i can just do console.log("email is", results[0].email); and it worked fine
console.log("email is", JSON.parse(JSON.stringify(results))[0].email);
}
场景一:
当我在 MySQL 中创建一个简单的表并查询数据并可以轻松地从中提取电子邮件时
results[0].email
场景 2: 当我再次使用我的 SQL 工作台创建同一个表并查询数据以从中提取电子邮件时,结果 [0].email 不起作用,我可以看到数据作为 RowDataPacket{} 返回并强制使用,
JSON.parse(JSON.stringify(results))[0].email
它现在确实有效,但很难理解为什么 RowDataPacket 第二次出现而不是之前出现,以及 JSON 技术是如何在这里工作的。
下面是使用 Mysql 工作台创建的用户表。
mysql> show create table users;
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table
|
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| users | CREATE TABLE `users` (
`email` varchar(255) NOT NULL,
`password` varchar(32) NOT NULL,
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`first_name` varchar(255) NOT NULL,
`last_name` varchar(255) NOT NULL,
`userlogin` tinyint(1) DEFAULT '0',
PRIMARY KEY (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci |
+-------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
. 非常感谢您的帮助。
解决方案
推荐阅读
- javascript - 打字稿:猫鼬转换为 ObjectId 路径“_id”处的值失败
- c# - 基于 Vector2 方向的游戏对象旋转
- sql - 如何将一个选定的行影响到 T-SQL 中的局部变量
- elasticsearch - Elasticsearch - 搜索词的相关性
- python - Django中get_gueryset方法的问题
- angular - 为什么打字稿不能从firebase导入类型用户?
- python - 是否可以通过定义的索引列表对 numpy 数组进行洗牌?
- verilog - 如何在系统verilog中计数?
- javascript - 算法:为骑士移动到所有棋盘格生成路径
- java - 任何人都可以从我的 java 程序中删除错误吗?| 工具:VS 代码 | 错误:在类中找不到 main(String[]) 方法:myjavacode.Base