You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RxDB原生JavaScript示例无法运行,storage未定义报错如何解决?

这两个问题都不是RxDB本身的bug,是操作时遗漏了必要配置导致的,具体原因和修复方案如下:

问题原因分析

1. Uncaught (in promise) TypeError: storage is undefined 报错

  • 该错误是创建RxDB实例时缺少storage适配器配置导致。RxDB从10.0.0版本之后不再默认内置存储适配器,必须手动引入适配运行环境的存储适配器,在创建数据库时显式传入配置。
  • 因为storage初始化失败,数据库创建流程直接中断,所以页面会一直停留在「Starting database」状态。

2. Uncaught ReferenceError: col is not defined 报错

  • 该错误是前一个错误的连锁反应:数据库创建失败后,后续给col变量赋值集合实例的代码根本没有执行,点击Insert按钮调用addHero方法时访问不存在的col变量,自然会抛出未定义错误。
修复步骤
  • 第一步:引入浏览器端适配的存储适配器,如果你是通过npm安装的RxDB,导入代码如下:
import { getRxStorageDexie } from 'rxdb/plugins/storage-dexie';
  • 第二步:修改createRxDatabase方法的入参,新增storage配置项:
const db = await createRxDatabase({
  name: 'heroesdb',
  storage: getRxStorageDexie(), // 新增该行,传入存储适配器实例
  // 其余原有配置保持不变
});
  • 第三步:确认集合创建逻辑正常执行,col变量被正确赋值为hero集合的实例。

完成上述配置后两个报错都会消失,示例可以正常运行。

内容的提问来源于stack exchange,提问作者FredVal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 00:45:03