1

我尝试了 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

谢谢!

4

0 回答 0