【问题标题】:meteor reporting of data in existing mysql db. how?现有 mysql 数据库中数据的流星报告。如何?
【发布时间】:2014-03-25 19:04:29
【问题描述】:

我正在尝试使用流星和 raphael js 制作一些报告。我必须报告现有 MySQL 数据库中的数据。我不想写到那个数据库。我只需要 CRUD 中的“R”。 我想到了各种手动方法:通过应用程序本身(Limesurvey)从 MySQL db 导出 .csv 文件并使用mongoimport 填充 MongoDB 集合,然后在 Meteor 中执行我的CollectionName.find() 等。 或者可能以某种方式公开 REST 完整端点以仅使用数据,并为 Meteor 使用 http 包。

在 Meteor JS 应用程序中使用现有 SQL 数据是否有一个很好的干净解决方案? 如何使用预先存在的 SQL 数据?

(请注意,我对 MongoDB 中的重复没有问题。但它必须是......) 谢谢你

【问题讨论】:

    标签: mysql database meteor reporting


    【解决方案1】:

    可以完全从 Meteor 内部完成,而无需任何重复,但您必须跳过几个圈。

    首先,使用mysql npm package查询SQL数据库。虽然 Meteor 提供了 Npmrequire 节点包,但我发现使用 meteor-npm 更容易。然后在你的服务器上创建一个Meteor.method,直接查询MySQL。

    那么第二个问题是mysql包是完全异步的。因此,SQL 查询的执行在回调中返回值,到那时,您的 Meteor.method 调用将返回给客户端留下 undefined. 要解决这个问题,我们可以使用 Future

    有几种方法可以平滑这一步:

    1. 使用`meteor-sync-methods
    2. 根据the issue to allow this natively 的建议推出您自己的版本
    3. 使用这种易于实现的一次性模式:"fence has already activated -- too late to add writes"

    希望对您有所帮助。

    【讨论】:

    • 哇,太棒了,谢谢。尽管 Meteor.syncMethods 包看起来很有趣,但我会先试一试您的第三个选项。
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多