关于
FlexTree是一款基于左右值(Nested Set Model)算法的树形数据存储管理库,面向Node.js(及Bun)环境。它将树结构的高效查询与简洁的 API 相结合,让开发者无需手写复杂的递归SQL,即可完成树的增删改查、遍历、移动、导出等操作。
特性概览
- 查询高效:基于左右值算法,后代、祖先、子节点、兄弟等关系查询均可由单条
SQL完成,无需递归。 - API 简洁:语义化的方法命名 + 完整的
TypeScript泛型支持,自定义字段也能获得精准的类型提示。 - 操作完整:覆盖添加(含嵌套批量添加)、删除、移动、更新、查找、遍历、导出等全生命周期操作。
- 数据安全:事务化写入保证原子性,并发读守卫避免脏读,并提供树结构校验(
verify)与修复(repair)能力。 - 多数据库:通过适配器模式解耦数据库访问,内置
SQLite、Prisma、Bun SQLite三种适配器,可按需扩展至MySQL、PostgreSQL、Oracle、SQL Server等任意数据库。 - 灵活定制:支持自定义关键字段、单表多树(
treeId)、单例管理、懒加载、节点事件等。
适用场景
FlexTree是查询优先的存储结构,最适合读多写少的树形数据,例如:
- 组织架构、部门层级
- 商品 / 内容分类目录
- 菜单、权限树
- 评论与回复嵌套
- 地区、标签等层级数据
频繁结构变更(高频写入)的场景,建议结合功能优势与局限权衡选型。
接下来
项目信息
- 开源协议:MIT
- 源码仓库:GitHub
- 运行环境:
Node.js/Bun