在CouchDB URL重写中连接变量

时间:2014-10-12 19:10:49

标签: couchdb

我的一些CouchDB文档ID中有一个正斜杠(/)。我发现这对我的网址有问题,因为我需要将它们转义为%2F。在重写URL时,我想做类似以下的事情

"rewrites": [
  {
    "from": "/id/:prefix/:postfix",
    "to": "/_show/html/:prefix%2F:postfix",
    "method": "GET",
    "query": {}
  }
]

但是,这不会导致我的文件。

有可能做我想做的事吗?

1 个答案:

答案 0 :(得分:0)

According to the CouchDB docs,CouchDB自CouchDB 1.7以来一直支持这种重写(作为字符串化函数),但Cloudant's documentation并未谈论此特定功能(仅从数组重写)。

{
  "_id": "_design/myRewrites",
  "rewrites": "function (req2) {\n    return {path: \"../../../\" + req2.path.slice(4).join(\"%2F\")};\n}"
}

更好地格式化重写函数:

function (req2) {
  return {path: "../../../" + req2.path.slice(4).join("%2F")};
}

但请注意Cloudant does not support rewrites as functions