Meteor JS + PostgreSQL

vei*_*row 1 javascript postgresql meteor

我有一个PostgreSQL 9.5和流星1.4.我想从db中选择数据并在浏览器控制台中显示它.

对于meteor和SQL,我使用这个包https://github.com/storeness/meteor-postgres.

我想实时在浏览器控制台中显示db的数据.例如我的数据库是[9, 5, ..., 5]. 用户来到网站后我们添加一些数据[9, 5, ..., 5, 6,7].

所以在控制台我们有[6,7] 新手,我怎么能这样做?

非常感谢.

Cod*_*imp 6

我假设问题是"如何使用Postgres获得反应性"?我将尽力根据我的知识回答这个问题,但请记住:

  1. 我不为千年发展目标工作,所以我对他们所做工作的深入了解仅限于他们所宣传的内容.
  2. 我的基础是我的知识,这些知识源自一些基于流星的项目的实践经验.
  3. JS框架世界中的事情一直在快速改变SUPER,因此可能存在我不知道的事情.我依靠别人来填补我可能缺乏知识的地方.

所以,简短的回答:根据目前的Meteor,据我所知,除了MongoDB之外,不可能具有开箱即用的反应性.

现在,长期答案有点复杂.您可以编写自己的代码来监视SQL服务器的操作,并通过DDP自行设置pub/sub.我在git中有一些演示代码,我在坦帕的Meteor Meet-Up中做过这样的演绎,如何通过Pub/Sub来破解DDP.做DDP部分真的不是很难.困难的部分是在您选择的SQL服务器上获得反应性设置...在这种情况下Postgres.

为了解决问题,以下是您需要做的基础知识:

  1. 实现某种自定义代码,在Postgres更新时触发事件.此代码应足够智能,以便知道哪些表已更新以及哪些表正在pub/sub中使用,因此它将仅在需要时更新.
  2. 使用#1中的事件来驱动您的出版物.在这里您可以获得漂亮并跟踪数据行,或者只是在每次更新时发送所有行.如果您选择第一个选项,则需要以某种方式协调对已发送内容的更改,以便您可以发布增量.如果您选择第二个选项,那么您仍然需要跟踪您发送的结果以通过DDP删除它们.无论哪种方式,它似乎令人生畏.联接和子查询可能几乎无法处理
  3. 从客户端,我们需要简单地订阅该出版物.客户端将像以前一样使用mini-Mongo.

无论你如何分割,这都是一个艰难的代码处理过程.MongoDB主要用于Meteor,因为它的Oplog使跟踪更改变得非常容易,而且由于它不是关系数据库,因此他们不必担心连接/子查询问题.

最大的复杂功能来自Apollo,这是一个来自MDG 的重大项目,旨在重新阐述Meteor的反应性.据说Apollo将Meteor从DDP和MongoDB中分离出去,并且更少发布/ sub-ie并依赖GraphQL.我还没有真正调查过,所以我不能真正地向你详细说明在宏观计划中究竟意味着什么,但最重要的是,如果你可以等待它可能能够解决一些(如果不是全部)问题.另一方面,很多人会说"在孵化前不要计算你的鸡",即不要指望一些尚未发布/交付的东西来解决你现在遇到的实际问题.