【发布时间】:2019-08-22 02:35:33
【问题描述】:
我目前有一个 GatsbyJS 应用程序,它使用 Netlify CMS (NCMS) 进行内容管理,并通过 GitHub 使用 Netlify 进行托管/部署。
我想构建一个非常简单的订单系统,但我想使用 JSON 文件和 NCMS 集合来表示数据,因为我的数据要求非常低,并且我希望能够完全管理数据通过 NCMS。
例如,我有一个Products 集合和一个Orders 集合。 Products 使用 JSON 扩展并包含代表每个产品的 JSON 文件。那里的一切看起来都很好。对于Orders,我希望能够从 NCMS 或从我的应用程序中的订单创建新条目。
在 NCMS 中创建 Orders 条目应该足够简单,使用关系小部件将 Products 条目合并到每个订单中。我想弄清楚的是如何在提交表单时在我的文件系统(repo)中创建 JSON 文件。我认为这在某种程度上可以通过 GitHub webhooks 实现,因为当您在其系统中创建文件时,NCMS 正在执行此操作。
当用户在我的应用程序中提交 Netlify 表单时,我可以使用 Netlify 的表单 API、Netlify 函数和/或 GitHub webhook 的某种组合在我的 GitHub 存储库中创建一个文件吗?
如果这不可能,我的后续策略是将Orders 数据保存在 MongoDB 数据库中。我对 Mongo 还没有任何经验,但我知道它是基于使用类似 JSON 的语法的“平面”数据格式。我是否可以在通过 Netlify Lambda 函数提交时将订单数据保存在 Mongo 集合中,然后通过 Netlify 触发构建,并在我的应用程序中在构建时拉入 Mongo 数据,并以某种方式为每个订单对象创建一个文件,也许是通过盖茨比的 API?
我最后的办法是在我的应用程序中设置一个管理区域,可以在其中查看、修改和删除订单。我宁愿避免这种情况,因为 a) 我没有 Netlify Pro 服务,因此无法访问受密码保护的站点访问权限(尽管我不确定 NCMS 如何利用身份并能够避免高级计划?), b) 我希望通过同一平台 (Netlify CMS) 进行所有数据管理。
【问题讨论】:
-
有关如何登录和使用后端的想法,您可以在 github repo 上查看 gatsby 商店的代码
-
很高兴知道,谢谢
标签: reactjs mongodb gatsby netlify netlify-cms