
[英]JavaScript + MariaDB: SQL query to return array of json objects and remove `\` forward slash from response
[英]MariaDB response from Insert Statement
我目前正在构建一个小型应用程序,到目前为止一切正常,但现在我对返回值感到非常困惑。
我正在使用带有 NodeJS 和 mariadb 连接器的 MariaDB 数据库。 所有语句都通过而没有失败,但是当我发送 INSERT 语句时,数据库会发回以下内容:
OkPacket {affectedRows: 1, insertId: 51n, warningStatus: 0}
affectedRows:
1
insertId:
51n
warningStatus:
0
数据库对语句很好,但我不知道插入 ID 后面的“n”在哪里。 问题是,它破坏了完整的应用程序,因为 JSON.stringify() 说:
TypeError: Do not know how to serialize a BigInt
at JSON.stringify (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5) {stack: 'TypeError: Do not know how to serialize a Big…ions (node:internal/process/task_queues:96:5)', message: 'Do not know how to serialize a BigInt'}
因此,DB 将 ID(该表的主键)作为 BigInteger 发送回,而 JSON.stringify() 无法解析它。 但我不希望在响应中使用 BigInteger。
谁能帮我这个? 提前谢谢
您可以将选项传递给连接的查询方法,以将insertId
作为字符串返回。
await conn.query(stmt, { supportBigNumbers: true, bigNumberStrings: true})
或者,您可以将其作为Number
返回。 如果insertId
无法从 BigInt 转换为 Number,该方法将引发异常
await conn.query(stmt, { supportBigNumbers: true, insertIdAsNumber: true})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.