如何使用@replit/database存储object类型数据并正常读取属性
问题原因
@replit/database 仅支持字符串类型作为存储值,直接传入对象时,库会自动调用对象的toString()方法将其转换为[object Object]字符串存入,你读取到的实际是这个字符串,自然无法获取something属性,因此输出undefined。
解决方法
存储前先将对象序列化为JSON字符串,读取后再反序列化为对象即可,代码示例如下:
存储代码
await client.set("hello", JSON.stringify({ something: true, }));
读取代码
const hello = JSON.parse(await client.get("hello")); console.log(hello.something); // 输出 true
补充说明
所有非字符串类型的数据(数组、数字、布尔值、null等)存储时都建议按照上述序列化+反序列化的逻辑处理,避免出现类型转换异常。
内容的提问来源于stack exchange,提问作者vietanh266
相关产品推荐
相关产品推荐

