我尝试了 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 64 位,CouchDB 2.0.0
谢谢!