0

JSData 是替代还是补充 Sequelize.js?

我试图了解这两个库如何一起玩以及是否应该一起玩。

从我的阅读来看,JSData 主要处理访问数据,而 Sequelize.js 将创建和修改 scema,并且还提供对对象的访问。

如果我使用 Sequelize.js,在服务器端使用 JSData 有什么意义吗?

我正在考虑在服务器端使用 Sequelize,对这些对象实现一些 REST API,并在客户端使用 JSData + JSDATA-http 来访问 REST API,但感觉我必须定义两次对象......一次用于 Sequelize,一次用于 JSData - 有没有什么魔法可以防止需要这样做两次?还是我以错误的方式思考这一切?

4

1 回答 1

2

JSData 是替代还是补充 Sequelize.js?我试图了解这两个库如何一起玩以及是否应该一起玩。

在服务器上,js-data + js-data-sql 将替换 Sequelize,类似于 js-data + js-data-mongodb 将替换 Mongoose。js-data-sql 在后台使用 Knex.js,您可以将其用于模式迁移以及 Knex 支持的任何其他内容。validate对于模式验证,您可以通过生命周期挂钩(和其他地方)将您喜欢的验证库插入 js-data 。

如果我使用 Sequelize.js,在服务器端使用 JSData 有什么意义吗?

我正在考虑在服务器端使用 Sequelize,对这些对象实现一些 REST API,并在客户端使用 JSData + JSDATA-http 来访问 REST API,但感觉我必须定义两次对象......一次用于 Sequelize,一次用于 JSData - 有没有什么魔法可以防止需要这样做两次?

我实际上有在客户端使用 js-data + js-data-http 并在服务器上使用 Sequelize 的经验。您可以这样做,但是是的,您必须定义每个模型/资源两次,一次使用 Sequelize API,一次使用 js-data API。您可以通过将通用逻辑提取到服务器和客户端可以使用的“基本”模型中来减少重复。但是,如果您在服务器上使用 js-data,您可以直接在客户端中编写复杂的查询,而无需将它们转换为服务器的 ORM 可以理解的内容。

还是我以错误的方式思考这一切?

不,你只是想了解你的选择。作为 js-data 的作者,我当然赞成 js-data + js-data-sql,但是 js-data + js-data-sql 落后于 Sequelize 的主要领域是 Sequelize 对belongsToMany (n:m) 关系和对 sql 数据类型的内置理解(验证取决于您使用 js-data)。

于 2015-12-21T00:14:49.660 回答