我正在尝试使用 meteor 和 raphael js 制作一些报告。我必须报告来自现有 MySQL 数据库的数据。我不想写入该数据库。我只需要来自 CRUD 的“R”。
我想到了各种手动方法:通过应用程序本身 (Limesurvey) 从 MySQL 数据库导出 .csv 文件并使用 mongoimport
填充 MongoDB 集合,然后执行我的 CollectionName.find ()
等 meteor 。
或者可能只是公开 REST 完整端点以使用数据的某种方式,并使用 Meteor 的 http 包。
在 Meteor JS 应用程序中使用现有的 SQL 数据是否有一个好的干净的解决方案? 如何使用预先存在的 SQL 数据?
(请注意,我对 MongoDB 中的复制没问题。但是它必须是...) 谢谢你
最佳答案
您可以完全从 Meteor 内部完成它而无需任何重复,但是您将不得不跳过几个环节。
首先,使用 mysql
npm package查询 SQL 数据库。尽管 Meteor 为 require
节点包提供了 Npm
,但我发现使用 meteor-npm
更容易。然后,为了执行 MySQL 的“R”读取,在您的服务器上创建一个直接查询 MySQL 的 Meteor.method
。
那么第二个问题就是mysql
包是完全异步的。因此,SQL 查询的执行会在回调中返回值,到那时,您的 Meteor.method
调用将返回给客户端留下 undefined。
来解决这个问题问题,我们可以使用 Future
。
有几种方法可以平滑这一步:
- 使用`meteor-sync-methods
- 根据 the issue to allow this natively 的建议衍生出您自己的版本
- 使用这个易于实现的一次性模式:"fence has already activated -- too late to add writes"
希望对您有所帮助。
关于mysql - 现有 mysql 数据库中数据的 meteor 报告。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22644008/