Javascript node.js ORM跟随数据
我一直在使用ORM的活动记录和数据映射器实现,足以了解在我的大型项目中使用活动记录实现的ORM时遇到的问题。 现在我正在考虑将我的一个项目迁移到node.js,并试图找到现在正在使用的类似工具。 经过研究,我没有发现任何遵循数据映射器模式的node.js ORM。 他们都是积极的记录。 也许我错过了一些东西,你可以告诉我有没有遵循活动记录模式的node.js的流行ORM?
我看过的图书馆:
在经历了很多关于JavaScript的ORM之后,我写了自己的支持TypeScript / ES6 / ES5的ORM,并遵循数据映射器模式和所有其他最佳实践 - TypeORM
我为Node.js编写了一个名为node-data-mapper的ORM; 它在这里可用:https://www.npmjs.com/package/node-data-mapper。 它是使用数据映射器模式的Node.js的ORM。 开发人员在读写数据库时使用普通的旧JavaScript对象。 表格之间的关系并不严格定义,这使得加入非常灵活 - 无论如何 - 尽管有些冗长。 实际的数据映射算法是快速和简短的,并且复杂性是线性的(从表格DB数据到标准化JavaScript对象的转换在一个循环中完成)。
我也尽我所能使它相当容错。 有100%的代码覆盖率,虽然我知道这并不能证明没有缺陷,但我的确尝试尽可能彻底地进行测试。
我在Doctrine 1之后非常松散地模拟了这个接口。(我已经相当广泛地使用了LINQ,Doctrine 1和2以及Hibernate,并且对于那些我最喜欢Doctrine 1接口的ORM,node-data-mapper不是JavaScript尽管如此,它的界面也有很大的不同。)查询接口使用延迟模块返回promise。
我模拟了MongoDB条件之后的条件(例如WHERE和ON子句)。 希望这可以让条件有点直观,同时提供一种可重用查询的方法(特别是可以用多种不同方式安全地过滤的复杂SELECT查询)。 这些条件被视为特定于领域的语言,并进行lexed,parsed和编译。
无论如何,这个模块是我在个人项目中使用的东西,但我很想从社区中的其他开发人员那里获得一些反馈! 我试图提供大量示例让人们快速启动并运行。 目前该模块仅支持MySQL,但我正在努力增加对MSSQL的支持。
数据映射器模式和活动记录之间的区别在动态语言(如JavaScript)中确实没有意义。 通常,数据映射器在类型化语言中更加轻量级,但在JS中它并没有真正改变。 从我的头顶,我可以提到两个非常受欢迎的项目,你可能不知道:
Waterline.js是一个Sails抽象,它在很多数据库系统的基础上工作得很好。
如果你会考虑MongoDB的数据库 - Mongoose.js。
链接地址: http://www.djcxy.com/p/17205.html