如何使用cURL将设计文档上载到CouchDB?

如何使用cURL将设计文档上载到CouchDB?,curl,couchdb,Curl,Couchdb,我试图学习CouchDB,我可以在Futon中创建视图等,但我想在桌面上编写我的设计文档,并使用cURL上传它们。“最终指南”显示使用cURL更新内容文档,但所有设计文档都是Futon或CouchApp 我想将当前的设计文档下载到本地文件中,编辑该文件,然后将其发送回CouchDB 下载和上传CouchDB设计文档的cURL命令是什么?将数据库“dev task”中的设计文件“task”下载到文件“task.json”: 编辑文件后,可以将其放回原处 curl -X PUT http://loc

我试图学习CouchDB,我可以在Futon中创建视图等,但我想在桌面上编写我的设计文档,并使用cURL上传它们。“最终指南”显示使用cURL更新内容文档,但所有设计文档都是Futon或CouchApp

我想将当前的设计文档下载到本地文件中,编辑该文件,然后将其发送回CouchDB

下载和上传CouchDB设计文档的cURL命令是什么?

将数据库“dev task”中的设计文件“task”下载到文件“task.json”:

编辑文件后,可以将其放回原处

curl -X PUT http://localhost:5984/dev-task/_design/task -d @task.json
这是因为
task.json
包含适当的修订号。如果要再次更改该文件,需要先重新下载以获得最新版本号。

尽管Victor Nicolet的回答是正确的,但最好查看诸如CouchApp之类的CLI工具。 -容易开始,非常有效。 此外,这些工具是稳定的,很久以前就已经成熟,并且在贡献者社区的推动下不断改进

为什么?

  • 设计文档是一个JSON对象,这些对象因其在编辑器中重载而闻名。例如-无注释,每个字符串(包括键属性)都必须用字符串包装,等等
  • JSON文档不是为包含函数而设计的。couchdb解决方案是要求函数字符串化,这使得它们很难编辑。 需要一个编辑器来将函数转换为一种可行的格式,编辑它,然后再次将其字符串化
  • CouchDB要求udpated文档将与现有文档的版本相匹配(并且在更新成功时,REG将为您提供下一次验证)。这要求编辑器跟踪版本,并在每次希望应用更新时使用它们
  • 附件——例如,是地图功能之间代码重用的基础,或者通常用于直接从CouchDB的web服务器提供服务的应用程序——很难管理,因为每个附件通常以单独的方式上载,或者具有更大的副本
  • 这些问题的解决方案是CLI实用程序,它允许编辑器处理普通的JavaScript文件,然后他可以像以前一样签入类似SCM的代码文件,并在收到命令时让CLI工具为他将其转换为有效的JSON,并将其与所有需要更新的附件(如果有)一起上载到目标CouchDB

    这些解决办法将是:

    • CouchApp的两种风格(python和NodeJS)
    • Kanzo(事实上,这要多得多,不是针对任何人,但绝对值得一提)
    我个人使用。 玩得开心:)

    更新,大约2年后

    这里有另一个值得一提的工具,尽管我不得不说我对它很满意。
    它叫。它基于与相同的原则,并针对持续的整合流程以及个人发展。它使用package.json中的一个指定部分来保存有关DDoS部署的信息,并允许开发人员/构建服务器使用CLI参数覆盖任何配置。

    回答得很好,但您让我们挂起了“kanzo更重要”—更多什么?!它不仅仅是一个上传ddoc的简单工具,它几乎是一个范例。但所有这些都超出了这个问题的范围,所以基本上-这是一个邀请,至少看一看:)
    curl -X PUT http://localhost:5984/dev-task/_design/task -d @task.json