我尝试了CouchDB的重写功能,请参阅:http://docs.couchdb.org/en/2.0.0/api/ddoc/rewrites.html在“重写部分a是字符串化函数”,但似乎它不起作用。我用这个例子作为基础。
这是mydb _design / router重写函数:
function (req2) {
var path = req2.path.slice(4);
return {path:"../../../"+path.join("/")};
};
mydb设计文件:
{
"_id": "_design/router",
"_rev": "1-ff8b2d9e12f41de38495d3460e8c10ad",
"rewrites": "function (req2) {\r\n var path = req2.path.slice(4);\r\n\r\n return {path:\"../../../\"+path.join(\"/\")};\r\n}"
}
此代码应该通过对端点发出的所有请求mydb / _design / router / _rewrite / *
示例:
GET localhost:5984 / mydb / _design / router / _rewrite / mydb / _all_docs 重新路由到mydb / _all_docs
GET请求正常(正如预期的那样)
但是POST,PUT,DELETE请求都挂起了(没有响应!)。
示例:
POST localhost:5984 / mydb / _design / router / _rewrite / mydb
Content-Type:application/json
body:{"foo": "bar"}
没有错误消息只会挂起。
上述请求无需重写即可正常工作! (POST localhost:5984 / mydb插入一个新文档{“foo”:“bar”})
这是一个错误还是我在这里做错了什么?如果这是一个我可以报告的错误吗?
我的规格:Win7 64bit,CouchDB 2.0.0
谢谢!