Couchdb 如何重播在请求中发送到Coach db的标头?

Couchdb 如何重播在请求中发送到Coach db的标头?,couchdb,couchapp,couchrest,Couchdb,Couchapp,Couchrest,如何重放作为请求发送到cocohdb的头,关键是我想对数据库的所有文档重放头,而不考虑显示函数 因此,我会向couchdb发送一个请求,请求创建一个文档作为 curl -X POST -i -H "Content-Type: application/json" -H "User-Agent: CURL" --data-binary @${INPUTFILE} http://someip:port/db 其中db是我已经在Coach db中创建的数据库名,输入文件是要发送到

如何重放作为请求发送到cocohdb的头,关键是我想对数据库的所有文档重放头,而不考虑显示函数

因此,我会向couchdb发送一个请求,请求创建一个文档作为

 curl -X POST -i -H "Content-Type: application/json" -H "User-Agent: CURL" --data-binary          @${INPUTFILE}  http://someip:port/db
其中db是我已经在Coach db中创建的数据库名,输入文件是要发送到Coach db的json文件,该文件将被存储

这里的回答总是如下

HTTP/1.1 201 Created
Server: CouchDB/1.5.0 (Erlang OTP/R16B01)
Location: http://someip:port/db/14f49d6e537268402761d873560b1da9^M
ETag: "1-ad9ad86f3ca9b8671cd0fcb9e546971f"
Date: Mon, 10 Mar 2014 19:41:07 GMT^M
Content-Type: text/plain; charset=utf-8
Content-Length: 95
Cache-Control: must-revalidate^M

{"ok":true,"id":"14f49d6e537268402761d873560b1da9","rev":"1-ad9ad86f3ca9b8671cd0fcb9e546971f"}
http://someip:port/db/_design/mydesigndoc/_show/myshowfunction
现在我需要在响应中获得一个额外的标题。我知道我们可以通过showfunctions轻松实现这一点,但问题是我必须向show函数的url发送post请求,如下所示

HTTP/1.1 201 Created
Server: CouchDB/1.5.0 (Erlang OTP/R16B01)
Location: http://someip:port/db/14f49d6e537268402761d873560b1da9^M
ETag: "1-ad9ad86f3ca9b8671cd0fcb9e546971f"
Date: Mon, 10 Mar 2014 19:41:07 GMT^M
Content-Type: text/plain; charset=utf-8
Content-Length: 95
Cache-Control: must-revalidate^M

{"ok":true,"id":"14f49d6e537268402761d873560b1da9","rev":"1-ad9ad86f3ca9b8671cd0fcb9e546971f"}
http://someip:port/db/_design/mydesigndoc/_show/myshowfunction
但我不想这样,我想知道是否有可能只发布到
http://someip:port/db/
并返回自定义响应标题

或者有没有一种方法可以将地址前置到
http://someip:port/db
并将其转发到
http://someip:port/db/_design/mydesigndoc/_show/myshowfunction
我何时收到请求?我想这应该是可能的,但我想不出来


任何帮助都将不胜感激。谢谢

也许虚拟主机和/或重写文档将有助于:


终于想出了一个解决方案,我们适合我的用例。虽然我丢失了coach作为响应生成的头,但对于我的情况,我同意这一点

更新处理程序、重写URL、显示函数和vhosts的组合帮助了我

正如我在问题陈述中提到的,我想点击的url是

http://someip:port/dbname?version=1
如果我有自由改变这一点,我会用更少的努力解决这个问题。但这是一个URL,它将被一个POST请求击中,请求在coach DB中创建一个文档

有两种解决方案,一种是创建不同的dbname(如果可以的话),然后在重写中将此URL重定向到更新处理程序URL,或者直接使用vhost

如果不能将dbname更改为其他对象,那么问题会更复杂,如果

http://someip:port/dbname?version=1
在vhosts中,并将其定向到更新处理程序,则无法从Futon UI访问db,因为Futon UI的get请求将定向到更新处理程序,并引发HTTP方法不匹配错误

要克服这一问题,请创建一个重写处理程序,用于指导来自

someip:port/dbname?version=1
更新处理程序,并将请求发送到

someip:port/dbname
显示功能,显示从Futon看到的默认视图


最好的解决方案是,如果您有权更改DB名称,然后将URL重定向到DB design doc的更新处理程序,以便发布。

我已经在尝试这些内容,无论如何,感谢您的建议。如果我成功,我将发布解决方案并将其标记为解决方案。最后,更新处理程序以及vhosts设置为我完成了这项工作。感谢虚拟主机没有多大帮助,而且行为怪异,有其他解决方案来实现这一点吗?有了更新处理程序和虚拟主机,现在的问题是,如果我在响应中覆盖头,那么默认响应头将丢失,不确定从何处获取这些头,任何帮助都将不胜感激。