我目前有一个 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)进行。