分享自己写的 ORM 模块 Modelar
发布于 2 个月前 作者 Hyurl 718 次浏览 来自 分享

Modelar 参考了 PHP laravel 框架的 Eloquent ORM 模型,使用查询语句构造器生成 SQL 语句来进行数据操作。 这是一个轻量级的模型,仅 160 kb 的源码,所有 API 均有完善的文档和示例。 Modelar 的目标是加速 nodejs 应用的开发,通过查询构造器对象,模型关联等技术,可以非常方便地实现对数据的操作。 模型继承、事件监听等特性同时使数据操作更为可控。使开发者更关注于应用地呈现,而不是将时间花费在数据逻辑的设计上。 目前,Modelar 支持下面这些数据库:

  • mysql 使用 mysql 模块;
  • postgres 使用 pg 模块;
  • sqlite 使用 sqlite3 模块;

Modelar 的宗旨是 “写更少的代码,写优雅的代码”。 API 链接地址:modelar.hyurl.com:3000。 GitHub:https://github.com/Hyurl/modelar。 安装方式:

npm install modelar --save
9 回复

支持一下, thinkorm发来贺电

给个star先,最近也在写orm,拿来参考参考。还带了个3000的尾巴~~~

@fightAndLearn 因为我服务器 80 端口是给 Apache 用的

至今没见到过 node 下好用的 orm

@rwing 那你应该试试 Modelar

我觉得很多人对 ORM 有误解。。。。现在绝大多数的 ORM 只能被称为 SqlHelper 或 DbHelper,而不能叫 ORM。 举个很简单的例子来说

let t = new Teacher(); t.name = ‘zhang san’; t.students = [new Student(‘li si’), new Student(‘wang er mazi’)]; db.save(t);

这段代码 ORM 应该给我创建1条 teacher 记录,2条 student 记录,以及他俩的中间关系记录。绝大多数 ORM 连这个基本的 object mapping 都做不到。

@rwing 这个问题很有建设性,但我觉得这个可以做到。根据 Modelar 的设计,students 可以设置为一个 setter 和 getter,然后在 teacher 的保存事件(可以在构造方法中通过 teacher.on(“saved”, ()=>callback))中同时更新或插入 students 数据。

回到顶部