使用 GraphQL 和 MongoDB 的 Electron 应用程序
Posted
技术标签:
【中文标题】使用 GraphQL 和 MongoDB 的 Electron 应用程序【英文标题】:Electron app to utilize GraphQL and MongoDB 【发布时间】:2020-08-13 02:13:33 【问题描述】:Electron 应用程序是在 2 年前构建的,它允许您在设定的时间与个人创建活动(想想创建约会/会议)。 该应用程序是使用以下内容构建的:
聚合物前端 几个简单的 php 脚本(每个操作 1 个脚本文件)例如:get.php、add.php 等... Node.js(电子应用) mysql应用程序运行正常,当添加新活动时不是真正实时的,需要导航到不同的“页面”或刷新以引入新数据。
我决定使用新技术重新设计该应用程序,并希望使其更像一个“实时”应用程序。
这就是 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。
【问题讨论】:
【参考方案1】:可能你需要试试GraphQL Subcriptions。
对于 Mongodb,保持它像无模式的关系一样,以使其易于访问。 Source
【讨论】:
以上是关于使用 GraphQL 和 MongoDB 的 Electron 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Express-graphql“在运行突变和查询时无法使用 mongodb 读取未定义的属性‘集合’”
如何在不创建 Mongoose 模型的情况下将 GraphQL 与 Mongoose 和 MongoDB 一起使用
如何在使用 graphql 和 mongodb 的查询中使用“where”参数?