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)。