【发布时间】:2014-01-27 07:03:43
【问题描述】:
我知道这是一个常见问题,但我已经完成了测试,我需要一些特殊功能!
我需要的功能是:
- 将属性映射到列名
- 使用与模型名称不同的表名
- 支持软删除(续集的偏执模式)
- 支持记录时间戳(能够为每个不同的模型指定列名)
- 支持外键
- 必须支持mysql和sqlite
- 架构必须支持每个文件的模型
可选功能:
- 缓存(支持redis/memcache)
- 从数据库生成模型的命令行工具
我已经测试过了:
- 节点-orm
- 要处理自己的列名,您需要一种解决方法
- 不支持软删除,即使使用外部插件也不支持(我尝试使用 beforeRemove 挂钩编写一个,但我可以“阻止”它删除记录)
- 不支持每个文件的模型(您需要解决方法)
- 续集
- 不要创建外键
- 无法将属性映射到列名
- 支持每个文件一个模型,但效果不佳(您需要将关系放入包含模型的文件中)
- 节点持久
- 我不喜欢为所有东西指定连接实例
现在我要测试 JugglingDB 和 Bookshelf.js(但我不太喜欢最后一个)。
【问题讨论】:
-
我认为你现在找不到任何接近 Hibernate/Doctrine for Node 的东西 :(
-
sequelize 看起来不错,有一些解决方法,记住这不是 PHP,而且大多数时候事情往往过于异步,所以将它与 async.js 混合,我相信你会得到结果。
-
@GeoPhoenix 这个问题与 PHP 或异步与同步完全无关,关键是我正在寻找一个好的 ORM :)
-
softwarerecs.stackexchange.com 是您关于此问题的网站。
-
这篇文章应该对你有所帮助:sitepoint.com/3-javascript-orms-you-might-not-know
标签: javascript mysql node.js orm