Sequelize orm vs Loopback orm

时间:2015-04-10 13:26:39

标签: sequelize.js loopbackjs strongloop

我正在创建由PostgreSQL支持的rest api。我喜欢Strongloop Loopback框架,它简化了api开发。但它的内置orm与续集相比如何? 什么高级功能已经作为专用的sql orm继承,在环回中缺少? 也许最好继续使用sequelize,并使用一些其他的api助手而不是monolitic loopback框架?

4 个答案:

答案 0 :(得分:4)

有点意见问题,不知道它是否真的属于这里。 我自己的ORM实现并没有太大的区别,就RDMBS而言,无论如何(nosql是另一个故事)。我也真的不能代表Postgres实现,因为我不幸需要将它与MSSQL一起使用。是不是让你和Hstore或json一起工作?想想那些在环回中会发现的东西,因为它会在所有连接器中推广API。这是一个权衡。你可以用与Mongo相同的方式查询你的RDMBS。 也就是说,strongloop似乎已经在这里为企业制作了一个产品,所以我打赌这个支持应该是相当不错的。

另一方面,我真的不知道调用loopback是否是一个单一的框架是准确的。至少对我而言,单片框架工作就像Rails一样,在架构的角落里描绘你,并且更适合服务器渲染内容(与Fat-client SPA相比)。 Loopback会自动为您生成一个符合Swagger标准的Res​​t API,尽管您需要配置哪些路由/动词可访问以及ACL控制。虽然这些作品的某些实施是“烘焙”的,但它几乎不是整体的。如果您使用Restful架构,您将最终在任何其他框架中创建所有这些路由。您仍然可以根据需要在环回中创建自定义端点。 Loopback的一个非常好的事情是,您可以从RDBMS中的现有/遗留集中反向设计模型定义。还有一个定义同步选项(我还没有实际探索过)。查看this talk,它确实显示了为什么环回的逻辑。

答案 1 :(得分:3)

这是一个迟到的答案,但对于将来的参考: 事实上,环回不只是ORM,它是一个ORM + Express。您也可以单独使用Loopback的ORM lib(loopback-datasource-juggler),但它的api并不像Sequelize那样直观。另一方面,对我来说,主要的区别之一是,如果稍后更改模型,Loopback能够更新现有的数据库表,而不会破坏其中的数据。使用Sequelize,您需要手动处理它,它只在您运行它时第一次创建表。要更新现有表,您需要删除它然后重新创建它。希望你记得在表格中备份数据。或者手动更改表格的结构。

Loopback处理它的原因很简单,就像Sequelize一样,它没有强制数据库级别的数据完整性,正如上面提到的@ gurg-hackpof。

答案 2 :(得分:1)

值得注意的一点是,Loopback不保证参照完整性,因为它不会在数据库级别强制执行外键。 见https://github.com/strongloop/loopback-connector-mysql/issues/135

答案 3 :(得分:0)

除了上述所有内容外,回送数据库连接器还无法处理HA群集设置中的故障转移数据库连接。伤心的:(。并且这些日子的github问题没有出现。