【发布时间】:2020-12-29 12:47:27
【问题描述】:
我对 mysql 和后端整体还是新手,所以如果这是一个愚蠢的问题,我很抱歉。
我正在使用 node/mysql2 来访问 mysql 数据库。 Promisified 连接池方法用于连接。当我尝试这段代码时:
const result = await db.query(
`
SELECT
id
FROM
User
WHERE
name = ?
`,
[name]
);
return result[0];
返回值就是这个数组
[ [ TextRow { id: 53 } ], [ ColumnDefinition { _buf: <Buffer 01 00 00 01 01 28 00 00 02 03 64 65 66 06 64 65 76 69 6c 7a 04 55 73 65 72 04 55 73 65 72 02 69 64 02 69 64 0c 3f 00 0b 00 00 00 03 0b 42 00 00 00 05 ... 24 more bytes>, _clientEncoding: 'utf8', _catalogLength: 3, _catalogStart: 10, _schemaLength: 6, _schemaStart: 14, _tableLength: 4, _tableStart: 21, _orgTableLength: 4, _orgTableStart: 26, _orgNameLength: 2, _orgNameStart: 34, characterSet: 63, encoding: 'binary', name: 'id', columnLength: 11, columnType: 3, flags: 16907, decimals: 0 } ] ]
但实际上它是一个对象。因为console.log('result is ', typeof result) 向我展示了一个对象。
这是让我困惑的第一件事。为什么console.log显示的是对象类型,但返回值是数组?
另一件事是,当我尝试访问 TextRow 时,我根本无法访问。 TextRow 在这里做什么?这也让我很困惑。如果有人可以帮助我澄清这一点,我将非常感激
编辑:添加了结果截图以便于阅读
【问题讨论】:
标签: javascript mysql node.js arrays object