我的 CouchDB 位于子目录中。我应该列出啥作为摇篮主机?
Posted
技术标签:
【中文标题】我的 CouchDB 位于子目录中。我应该列出啥作为摇篮主机?【英文标题】:My CouchDB is in a sub directory. What should I list as the cradle host?我的 CouchDB 位于子目录中。我应该列出什么作为摇篮主机? 【发布时间】:2011-06-01 18:01:01 【问题描述】:我的 CouchDB 数据库位于此目录中:
http://example.com/couchdb/
例如,我在这里有一个 CouchDB 数据库“foo”:
http://example.com/couchdb/foo/
我应该在底座设置功能中将什么列为“主机”?
cradle.setup(host: '[what goes here]',
options: cache: true, raw: false);
以上示例来自:https://github.com/cloudhead/cradle
我无法让 cradle 看到我的数据库...
【问题讨论】:
是否有任何“前缀”或类似选项?我在其他 couchdb 库中见过prefix
。对不起,我对摇篮不熟悉(继续学习)。
感谢 jhs,但我没有看到任何前缀选项。
无赖。这就是为什么我个人不喜欢使用 CouchDB 客户端而使用 HTTP 的原因。 (在 NodeJS 中,我喜欢 Mikeal 的 request
模块。但是我听说 Cradle 很不错。
只是为了确保您的 数据库 中有斜线,例如some/database
,或者整个 CouchDB API 是否嵌入(例如通过反向代理)在 URL 内的命名空间中?谢谢!
jhs:我的数据库在这里:example.com/couchdb/my_database(my_database 中没有斜杠)...不确定您需要关于嵌入式部分的内容。
【参考方案1】:
尝试将主机的 IP 地址添加为底座主机选项。
【讨论】:
IP 地址无效。我从“new (cradle.Connection)”中完全删除了主机选项,现在它可以工作了。 @edt:那么您可能只在 CouchDB 端口上监听来自 localhost 的连接,因为这是默认选项。【参考方案2】:Longshot,我不相信这会奏效。我看了看 Cradle 源代码,它做了很多字符串连接来构建它的许多查询。
尝试将路径添加到数据库名称,这样您将使用数据库couchdb/foo
而不是/foo
。至少对于数据库查询(希望是文档、视图、附件以及该路径中的所有内容)它可能会起作用。
var cradle = require('cradle');
var db = new(cradle.Connection)().database('couchdb/foo');
db.get("some_docid", function(err, doc)
if(err) throw err;
console.log("I got the doc!");
)
对不起,我没有前缀沙发设置来直接测试这个。欢迎投反对票,更欢迎编辑!
【讨论】:
以上是关于我的 CouchDB 位于子目录中。我应该列出啥作为摇篮主机?的主要内容,如果未能解决你的问题,请参考以下文章