Skip to content

关于

FlexTree是一款基于左右值(Nested Set Model)算法的树形数据存储管理库,面向Node.js(及Bun)环境。它将树结构的高效查询与简洁的 API 相结合,让开发者无需手写复杂的递归SQL,即可完成树的增删改查、遍历、移动、导出等操作。

特性概览

  • 查询高效:基于左右值算法,后代、祖先、子节点、兄弟等关系查询均可由单条SQL完成,无需递归。
  • API 简洁:语义化的方法命名 + 完整的TypeScript泛型支持,自定义字段也能获得精准的类型提示。
  • 操作完整:覆盖添加(含嵌套批量添加)、删除、移动、更新、查找、遍历、导出等全生命周期操作。
  • 数据安全:事务化写入保证原子性,并发读守卫避免脏读,并提供树结构校验(verify)与修复(repair)能力。
  • 多数据库:通过适配器模式解耦数据库访问,内置SQLitePrismaBun SQLite三种适配器,可按需扩展至MySQLPostgreSQLOracleSQL Server等任意数据库。
  • 灵活定制:支持自定义关键字段、单表多树(treeId)、单例管理、懒加载、节点事件等。

适用场景

FlexTree查询优先的存储结构,最适合读多写少的树形数据,例如:

  • 组织架构、部门层级
  • 商品 / 内容分类目录
  • 菜单、权限树
  • 评论与回复嵌套
  • 地区、标签等层级数据

频繁结构变更(高频写入)的场景,建议结合功能优势与局限权衡选型。

接下来

项目信息

  • 开源协议:MIT
  • 源码仓库GitHub
  • 运行环境Node.js / Bun