Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
遵循数据映射器模式的Javascript node.js ORM_Javascript_Node.js_Orm_Datamapper_Typeorm - Fatal编程技术网

遵循数据映射器模式的Javascript node.js ORM

遵循数据映射器模式的Javascript node.js ORM,javascript,node.js,orm,datamapper,typeorm,Javascript,Node.js,Orm,Datamapper,Typeorm,我一直在使用ORM的活动记录和数据映射器实现,足以了解在我的大型项目中使用活动记录实现的ORM的问题。现在我正在考虑将我的一个项目迁移到node.js,并试图找到我现在正在使用的类似工具。经过研究,我没有发现任何遵循数据映射器模式的node.js ORM。它们都是活动记录。也许我遗漏了什么,你们可以告诉我有一个很好的流行ORM for node.js,它不遵循活动记录模式吗 我看过的图书馆: 其他一些 在JavaScript等动态语言中,数据映射器模式和活动记录之间的区别实际上没有意义。

我一直在使用ORM的活动记录和数据映射器实现,足以了解在我的大型项目中使用活动记录实现的ORM的问题。现在我正在考虑将我的一个项目迁移到node.js,并试图找到我现在正在使用的类似工具。经过研究,我没有发现任何遵循数据映射器模式的node.js ORM。它们都是活动记录。也许我遗漏了什么,你们可以告诉我有一个很好的流行ORM for node.js,它不遵循活动记录模式吗

我看过的图书馆:

  • 其他一些

在JavaScript等动态语言中,数据映射器模式和活动记录之间的区别实际上没有意义。 在类型化语言中,数据映射器通常更为轻量级,但在JS中,它并没有真正的区别。 在我的脑海中,我可以提到两个你可能不知道的非常受欢迎的项目:

是一个Sails抽象,它在许多数据库系统上运行得非常好


如果你考虑MunGDB为你的Db../P>< P>我写了一个ORM,用于NoDE.js,称为节点数据映射器;可在此处找到:。它是Node.js的ORM,使用数据映射器模式。开发人员在读取和写入数据库时使用普通的旧JavaScript对象。表之间的关系没有严格定义,这使得连接非常灵活——无论如何,在我看来——尽管有点冗长。实际的数据映射算法是快速和简短的,复杂性是线性的(从表格数据库数据到规范化JavaScript对象的转换在一个循环中完成)

我也尽了最大努力使它具有相当的容错性。有100%的代码覆盖率,虽然我知道这不能证明没有缺陷,但我确实尽可能彻底地进行了测试

我按照原则1对接口进行了非常松散的建模。(我已经相当广泛地使用了LINQ、条令1和2以及Hibernate,在这些ORM中,我最喜欢条令1的接口。不过,节点数据映射器无论如何都不是条令的JavaScript端口,接口也有很大的不同。)查询接口使用模块返回承诺

我根据MongoDB的条件对条件(例如WHERE和ON子句)进行建模。希望这能使条件更加直观,同时提供一种可重用查询的方法(特别是可以以多种不同方式安全过滤的复杂SELECT查询)。这些条件被视为特定于域的语言,并进行词法分析、解析和编译


无论如何,这个模块是我在个人项目中使用的,但是我很想从社区中的其他开发者那里得到一些反馈!我试着提供大量的例子来让人们快速启动和运行。目前该模块仅支持MySQL,但我正在努力添加对MSSQL的支持

在当前存在的用于JavaScript的ORM遇到很多挫折之后,我已经编写了自己的ORM,它支持TypeScript/ES6/ES5,并遵循数据映射器模式和所有其他最佳实践-

尝试一下,您可以将类型映射到表,并生成一个REST客户端,与映射生成的REST API一起使用。不知道这是否是你正在寻找的,但把它作为一个评论发表出来并没有坏处吗?:)@更令人恼火的是,它看起来不像在javascript中也有意义。我已经使用过遵循活动记录模式的客户端javascript库,它们只是扼杀了我的应用程序,我没有将相同的库重写为数据映射器样式活动记录和数据映射器是完全不同的模式,具有不同的设计。不管是JavaScript还是Java,模式可能都是一样的。感谢@pleerock提供的惊人的TypeORM库