RESP 和 JavaScript
将 RESP 转换为 JavaScript 并从 JavaScript 转换
在使用 client.call
API 从函数内部运行 Redis 命令时,回复将被解析为 resp3 回复,并使用以下规则转换为 JS 对象
resp 3 | JS 对象类型 |
---|---|
状态 |
具有名为 __reply_type 的字段和值为 status (或如果无法转换为 utf8 则为错误)的 StringObject |
批量字符串 |
JS String (或如果无法转换为 utf8 则为错误) |
错误 |
引发 JS 异常 |
长整型 |
JS 大整数 |
双精度浮点数 |
JS 数字 |
数组 |
JS 数组 |
映射 |
JS 对象 |
集合 |
JS 集合 |
布尔值 |
JS 布尔值 |
大数 |
具有名为 __reply_type 的字段和值为 big_number 的 StringObject |
逐字字符串 |
具有 2 个附加字段的 StringObject :1. __reply_type 和值为 verbatim 2. __format 具有逐字字符串中 ext 的值(或如果无法转换为 utf8 则为错误) |
空 |
JS 空 |
在使用 client.callRaw
API 从函数内部运行 Redis 命令时,回复将被解析为 resp3 回复,并使用以下规则转换为 JS 对象
resp 3 | JS 对象类型 |
---|---|
状态 |
具有名为 __reply_type 的字段和值为 status 的 JS ArrayBuffer |
批量字符串 |
JS ArrayBuffer |
错误 |
引发 JS 异常 |
长整型 |
JS 大整数 |
双精度浮点数 |
JS 数字 |
数组 |
JS 数组 |
映射 |
JS 对象 |
集合 |
JS 集合 |
布尔值 |
JS 布尔值 |
大数 |
具有名为 __reply_type 的字段和值为 big_number 的 StringObject |
逐字字符串 |
具有 2 个附加字段的 JS ArrayBuffer :1. __reply_type 和值为 verbatim 2. __format 具有逐字字符串中 ext 的值 |
空 |
JS 空 |
JavaScript 到 RESP 转换
JS 类型 | RESP2 | RESP3 |
---|---|---|
字符串 |
批量字符串 |
批量字符串 |
具有字段 __reply_type=status 的 string 对象 |
状态 |
状态 |
异常 | 错误 |
错误 |
大整数 |
长整型 |
长整型 |
数字 |
批量字符串 |
双精度浮点数 |
数组 |
数组 |
数组 |
映射 |
数组 |
映射 |
集合 |
数组 |
集合 |
布尔值 |
长整型 |
布尔值 |
具有字段 __reply_type=varbatim 和 __format=txt 的 string 对象 |
批量字符串 |
格式为 txt 的 verbatim string |
空 |
resp2 null |
resp3 null |