我应该将哪些ORM用于Node.js和MySQL?

Nea*_*man 318 mysql orm node.js

我正在重写一个项目来使用Node.js. 我想继续使用MySQL作为数据库(尽管我不介意重写架构).我正在寻找一种简单易用,性能合理的ORM,它支持缓存,多对一和多对多关系.从我可以找到的MySQL ORM中,persistencejssequelize似乎是最成熟的.你有经验吗?在我的决定中我应该注意哪些相关的利弊?

ale*_*lex 146

我会选择Sequelize因为它的优秀文档.这只是一个诚实的意见(我从来没有真正使用MySQL与Node那么多).

  • 可悲的是,Sequelize文档最近变得非常糟糕.我最近开始使用Sequelize并对文档非常满意.现在它是一堆自动生成的断链,过时的信息和不完整的例子.我仍然会坚持下去.这并不难学. (13认同)
  • 我还想指出node-orm2或persistence.js不提供迁移机制.persistence.js不支持postgres.sequelize做了这两件事. (10认同)
  • 我使用了node-orm2,由于Sequelize的更好的文档,我能够更轻松地运行它 (4认同)
  • @Gelidus你从哪里获得这些信息? (2认同)
  • 刚删除我的旧评论,我现在100%同意@Brad,不幸的是:( (2认同)

dre*_*nde 101

我可以建议Node ORM吗?

https://github.com/dresende/node-orm2

有关自述文件的文档,支持MySQL,PostgreSQL和SQLite.

MongoDB自2.1.x版(2013年7月发布)开始提供

更新:根据项目的自述文件,不再维护此包.它改为推荐书架续集

  • 根据文档,看起来Sequelize远远领先于这个项目. (27认同)
  • 该项目已更改URL:https://github.com/dresende/node-orm2 (2认同)

小智 19

首先,请注意我没有使用其中任何一个(但已使用Node.js).

两个库都记录得很好,并且具有稳定的API.但是,persistence.js似乎在更多项目中使用.但我不知道他们是否仍然使用它.

sequelize的开发者有时会在blog.depold.com上发表关于它的博客.当您想使用主键作为外键时,您将需要此博客文章中描述的补丁.如果您需要persistence.js的帮助,那么有一个专门讨论它的谷歌小组.

从我收集的例子来看,sequelize比persistance.js更像JavaScript(更多糖),但支持更少的数据存储(只有MySQL,而persistance.js甚至可以使用浏览器内存储).

我认为sequelize可能是你的方式,因为你只需要MySQL支持.但是,如果您需要一些方便的功能(例如搜索)或者希望以后使用其他数据库,则需要使用persistence.js.


Jos*_*ith 10

Sequelize和Persistence.js之间的一个主要区别是前者支持STRING数据类型,即VARCHAR(255).制作一切我觉得很不舒服TEXT.

  • 在像PostgreSQL这样的数据库中,TEXT和VARCHAR完全相同,唯一的区别是如果你设置一个字节限制(VARCHAR(255)),那么你就有了检查限制的开销.在PostgreSQL中使用TEXT绝对没有问题. (8认同)
  • 目前Persistence.js也支持VARCHAR. (7认同)
  • 在PostgreSQL中使用TEXT实际上是更好的做法,即使它不可移植. (3认同)