自己做了个laravel eloquent node js 实现
Node.js 终于有了写起来像 Eloquent 的 ORM
用 Laravel 的时候,Eloquent 的 $user->posts()->where(...)->get() 写着很顺手。到了 Node.js 生态一圈看下来,要么是 Data Mapper 风格(TypeORM),要么是 Schema First(Prisma),都跟 Active Record 不沾边。
所以做了 Fedaco——一个 TypeScript ORM,写法还原 Eloquent 体验:
const users = await User.createQuery()
.where('age', '>', 18)
.with('posts')
.orderBy('created_at', 'desc')
.get();
模型定义用装饰器,关系声明跟 Eloquent 几乎一一对应——HasMany、BelongsToMany、MorphTo 都支持。迁移 CLI 也是 migrate、rollback、fresh 那套工作流。驱动独立拆包,目前支持 SQLite、MySQL、MariaDB、PostgreSQL、SQL Server。
写全栈项目用 NestJS 的话,有现成集成模块 @gradii/nest-fedaco,注册连接后直接在 Service 里用模型查询。
MIT 开源,欢迎 Laravel 同好来试试看熟不熟悉。
GitHub: github.com/gradii/fedaco 文档: gradii.github.io/fedaco/
v3 版本 迁移了 各种数据库driver. 并加了 migration 命令行。
关于 LearnKu
推荐文章: