我目前有一个GatsbyJS应用程序,它使用Netlify CMS (NCMS)进行内容管理,使用Netlify通过GitHub托管/部署。
我想构建一个非常简单的订单系统,但是我想使用JSON文件和NCMS集合来表示数据,因为我的数据需求非常小,我希望能够完全通过NCMS来管理数据。
例如,我有一个Products集合和一个Orders集合。Products使用JSON扩展名并包含代表每个产品的JSON文件。那里一切都很好。对于Orders,我希望能够从新NCMS或从我的应用程序中的订单创建新条目。
在NCMS中创建Orders条目应该非常简单,使用关系小部件将Products条目合并到每个订单中。我想弄清楚的是如何在表单提交时在我的文件系统(repo)中创建JSON文件。我认为这在某种程度上与GitHub webhooks是可能的,因为当您在他们的系统中创建文件时,NCMS就是这样做的。
当用户在我的应用程序中提交Netlify表单时,我可以使用Netlify的Forms API、Netlify函数和/或GitHub webhooks的一些组合在我的GitHub存储库中创建一个文件吗?
如果这是不可能的,我的后续策略是将Orders数据保存在MongoDB数据库中。我还没有使用Mongo的经验,但我知道它基于使用类似于JSON的语法的“平面”数据格式。我是否可以通过Netlify Lambda函数将我的订单数据保存在Mongo集合中,然后通过Netlify触发构建,并在我的应用程序中在构建时拉进Mongo数据,并以某种方式为每个订单对象创建一个文件,也许是通过Gatsby的API?
我的最后一招是在我的应用程序中设置一个管理员区,在那里可以查看、修改和删除订单。我宁愿避免这样做,因为( a)我没有Netlify Pro服务,因此无法访问受密码保护的站点访问(虽然我不确定NCMS如何利用身份并能够避免额外的计划?)和( b)我希望所有的数据管理都通过同一个平台(Netlify CMS)进行。
发布于 2019-04-01 05:59:21
您肯定可以使用Netlify表单、Function&GistubAPI来完成这一任务。我为我的一个gatsby站点做了类似的事情,其中表单数据直接提交给Netlify函数。
如果您想利用Netlify表单的功能,如垃圾邮件预防和电子邮件通知,我认为它应该如下所示:
submission-created事件的submission-created。在请求的正文中,您将找到一个包含表单数据的payload对象,以及关于您的站点的信息(以防您有很多表单数据)。Netlify有一个真正简化开发过程的套餐。希望能帮上忙!
https://stackoverflow.com/questions/55446456
复制相似问题