CNode

分享自己写的 ORM 模块 Modelar

分享
HHyurl发布于9 年前最后回复9 年前9 回复5047 浏览0 收藏

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)

H
Hyurl#1·9 年前
引用 fightAndLearn给个star先,最近也在写orm,拿来参考参考。还带了个3000的尾巴

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

R
rwing#2·9 年前

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

H
Hyurl#3·9 年前
引用 rwing至今没见到过 node 下好用的 orm

@rwing 那你应该试试 Modelar

R
rwing#4·9 年前

我觉得很多人对 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 都做不到。

L
liuguanhua#5·9 年前
R
richenlin#6·9 年前

支持一下, thinkorm发来贺电

F
fightAndLearn#7·9 年前

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

H
Hyurl#8·9 年前
引用 rwing我觉得很多人对 ORM 有误解。。。。现在绝大多数的 ORM 只能被称为 SqlHelper 或 DbHelper,而不能叫 ORM。 举个很简单的例子来说 let t = new Teach...

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

参与回复
登录后即可参与回复。登录