node.js - 使用 GraphQL 和 MongoDB 的 Electron 应用程序
问题描述
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。
解决方案
可能您需要尝试GraphQL Subcriptions。
对于 Mongodb,保持它像无模式的关系,以使其易于访问。资源
推荐阅读
- sql - SQL Oracle:寻找在特定产品目标方面做得最好的员工
- makefile - 我的 makefile 如何包含子目录?
- javascript - 如何定位元素
- java - 如何在搜索视图中添加语音搜索
- adhoc - 使用最小移动次数对数组进行排序?
- python - 除以 10 时的长整数,Python 中的结果在数值上不正确
- wpf - 我们可以在不从 DependencyObject 继承的类中实现依赖属性吗?如果是,有什么区别?
- java - Z3 Java 绑定:为什么在 SMT2 输入文件中设置生产证明会导致错误?
- django - Django VariableDoesNotExist,查找 ket [货币] 失败
- arrays - 如何使用 Apollo Server 和 GQL 接受字符串数组?