我发现了许多 Meteor 框架的参考 url,我发现 mongodb 作为数据库,因为我对 mongodb 了解不多。那么有没有办法实现mysql而不是mongodb
4 回答
有一种方法,但在目前的框架阶段,它是一条未铺砌的道路。基本上,您需要编写一个包装器,将 SQL 转换为 Meteor 的 Minimongo 并返回。如果您还不是 Meteor 和 Mongo 大师,这不是一项可行的任务。
有人尝试编写这样的适配器。我知道的最先进的是:https ://github.com/drorm/meteor-sql 。它可以用来玩耍,但我认为它还没有准备好生产。此外,目前除了 Mongo 之外,没有其他方法可以使用 Meteor 帐户系统。您要么需要将它用于用户帐户,要么放弃它们提供的极大便利。
我建议您尝试使用目前的 Meteor 以及 Mongo - 它比您想象的要容易。它不会增加太多的学习曲线,而且除了过滤器和更新操作符之外,您根本不会注意到您使用了一些奇怪的数据库 - 这就像使用原生 Javascript 对象一样。没有模式,没有迁移,也不需要对象映射。您只需获取数据,将其放入集合中,然后忘记 SQL 让您考虑的所有其他内容。
从文档中:
今天,大多数 Meteor 应用程序都使用 MongoDB 作为他们的数据库,因为它是最好的支持,但对其他数据库的支持将在未来出现。Meteor.Collection 类用于声明 Mongo 集合并对其进行操作。感谢 minimongo,Meteor 的客户端 Mongo 模拟器,Meteor.Collection 可以在客户端和服务器代码中使用。
由于客户端使用 minimongo,使用 RDBMS 可能无法提供最佳匹配(因为查询语言和数据结构非常不同)。
您可能对像微风.js之类的东西感兴趣,它从不同的方向解决了丰富的数据同步服务的问题,但它适合关系数据库。
也许有一种方法可以做到这一点,但这很棘手:
从 npm 安装 Mysql 驱动程序然后您可以选择使用 MongoDb 作为第一个前端或来自 Arunoda 的 Meteor Streams。然后您只需使用 Meteor.Collections 中的拒绝/允许系统将客户端的插入/更新/删除绑定到 Mysql 您还应该使用发布系统查询 Mysql 数据库并将数据返回给客户端。
最后一个问题是关于服务器数据库观察:如果 Mysql 发生变化,它不会提醒所有其他客户端,除了 Meteor.Streams。实现起来可能会很有趣。
你可以看看这个流星包nodets:mysql。在服务器和客户端使用 mysql 每次数据库更改时都会更新所有订阅。