【问题标题】:How to get a CouchDB _list result with Cradle如何使用 Cradle 获取 CouchDB _list 结果
【发布时间】:2011-07-30 13:58:39
【问题描述】:

在 Node 中,使用 Express 和 Cradle,我调用了一个不起作用的 _list。其他呼叫转到 _view 并正常工作。 Cradle documentation 不包括关于 _list 的部分,但从 this GitHub readme 看来,它应该像 _view 一样工作。

我的代码如下:

if(isList){
    db.list(couch_url, function (err, res) {
        if(err){
            console.log("error couchdb list", err);
        }else{
            //console.log(res);
            callback(JSON.stringify(res));
        }
    });     
}

couch_url 变量只是常规的 http 请求,看起来像:myCouch/_design/Model3D/_list/convert/All,除了路径指示符(_design、_view、_list)已被删除以获取 Cradle 的 Model3D/convert/All(看起来它们被放回了在摇篮功能中)。 couch_url 表示的完整路径将在其他 CouchDB 连接中工作,就像我说的,Cradle 视图功能工作正常。

我得到的错误对象是:

{ stack: [Getter/Setter],
    arguments: [ 'ILLEGAL' ],
    type: 'unexpected_token',
    message: [Getter/Setter] }

【问题讨论】:

    标签: couchdb cradle


    【解决方案1】:

    检查您正在使用的列表函数 - 它很可能会生成损坏的 JSON。 就我而言,我得到了一个属性的“未定义”结果。应该删除任何未定义的内容,并且所有属性名称都应该用引号引起来

    【讨论】:

      【解决方案2】:

      我试图重现这一点,但它似乎对我有用。只是仔细检查是“转换”您的列表功能和“全部”您的视图名称?

      我看到的唯一其他警告是您的数据库名称中包含大写字符。 CouchDB 数据库必须全部小写。

      【讨论】:

      • Jan - 你能给我你成功使用的 couchdb 和 cradle 版本吗?可能有一些关于大写的规则 - 但我所有其他与 couchdb 相关的调用都可以与该数据库名称一起正常工作,所以很难相信这只会弄乱 _list 函数......
      • 此外,名称的顺序是正确的 couchdb - 我知道是因为如果我使用其他几个非摇篮路由(perl、curl)中的任何一个,它就可以工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      相关资源
      最近更新 更多