自己做了个laravel eloquent node js 实现

AI摘要
这是一个关于Node.js生态中TypeScript ORM框架Fedaco的技术分享。作者介绍了该框架的设计理念——模仿Laravel Eloquent的Active Record风格,支持链式查询、装饰器定义模型、多种关系映射(HasMany、BelongsToMany、MorphTo)以及迁移CLI工作流。目前驱动支持SQLite、MySQL、MariaDB、PostgreSQL、SQL Server,并提供NestJS集成模块。内容为开源项目推广,无违规风险。

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 也是 migraterollbackfresh 那套工作流。驱动独立拆包,目前支持 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 命令行。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!