首页 > 解决方案 > 使用 GraphQL 和 MongoDB 的 Electron 应用程序

问题描述

Electron 应用程序是在 2 年前构建的,它允许您在设定的时间与个人创建活动(想想创建约会/会议)。该应用程序是使用以下内容构建的:

应用程序运行正常,当添加新活动时不是真正实时的,需要导航到不同的“页面”或刷新以引入新数据。

我决定使用新技术重新设计应用程序,并希望使它更像一个“实时”应用程序。

这就是 graphql(从未体验过)和 mongodb(以前使用过)的用武之地。至于 php 脚本,我将用 expressjs 替换后端。

前端是使用 Polymer 构建的,并且有一个称为 ajax 调用的组件。这是我目前平静的电话。

<iron-ajax 
   id="getPost"
   auto
   url="http://blitz.com/Activity/getActivity.php"  <!--getName.php--> etc...
   handle-as="json"
   on-response="handleResponse"
   last-response="{{activityResponse}}">
</iron-ajax>

这就是我相信如果我可以将其“实现”到 GraphQL 调用中,我将能够更多地了解 GraphQL 的工作原理以及它是如何实现的。还有关于 GraphQL,如果我确实需要托管应用程序,那么它将在哪里托管?据我了解,GraphQL 与 rest 非常相似。

数据库目前分为几个表,如果我对应用程序有更多的想法,会继续增加表的数量,但现在它只有 USERS 表,ACTIVITIES 表,POSTS 表。附加功能就像登录功能一样,我需要弄清楚添加新表是否是正确的调用,或者我是否会像谷歌登录一样使用它。

如果我要使用 mongodb,因为它是一个非关系数据库。此应用程序的最佳实践是什么?

我是否只有 1 个数据库和 1 个集合来处理所有信息?假设收集基于以下信息

{
 id: 1,
 host_name:"bob",
 guest_name:"bill",
 activity:"basketball",
 time:"12:12:12 01/01/01",
 answer:"accepted"
}

由于这是一个电子应用程序,我可以将所有内容捆绑到一个应用程序中,只托管后端和数据库本身,express + mongodb。

标签: node.jsmongodbexpressgraphqlelectron

解决方案


可能您需要尝试GraphQL Subcriptions

对于 Mongodb,保持它像无模式的关系,以使其易于访问。资源


推荐阅读