1

我是 node.js 和 couchdb 的新手,所以我一直在研究和执行一些代码测试,试图了解它们是如何工作的。

我正在使用 nano 包来处理 node.js 中的 couchDB。我能够连接到数据库并将数据插入其中。但我一直在努力理解如何查询数据。

我阅读了有关 couchDB 中视图的文档,从那时起,我一直在尝试从创建的名为 customersView 的视图中检索数据(数据库名称为 testqueila)。

View 的设计名称是“_design/custdoc/_view/customersView”。我试图使工作的功能如下:

testsqueila.view('_design/custdoc/_view/customersView', 'customersView', function(err, body) {
  if (!err) {
    body.rows.forEach(function(doc) {
        console.log(doc.value);
    });
  }
});

发生了一些错误,因为控制台中没有打印任何内容。我不确定我是否以错误的方式或其他方式使用了视图的设计名称。有人知道发生了什么吗?我还添加了一些代码来获取错误值,并在控制台中的消息末尾显示:错误:'non_200' 描述:'couch db 返回 404'。

感谢您的任何帮助!

4

1 回答 1

4

首先,我建议您查看nano 文档,其中详细介绍了您需要了解的有关 API 调用的所有信息。

_design/custdoc/_view/customersView仅当您直接查询 CouchDB 的 HTTP API 时才有效。使用 nanodb,您需要执行以下操作:

testsqueila.view('custdoc', 'customersView', function(err, body) {
  if (!err) {
    body.rows.forEach(function(doc) {
      console.log(doc.value);
    });
  }
});

所以 .view() 签名看起来像这样:db.view(designname, viewname, [params], [callback])

Designname 是不带_design/前缀的设计文档 ID。在您的情况下,它是 custdoc。

Viewname 是您要查询的视图的名称。在您的情况下,它是customersView。

如果有些地方不清楚,请随时发表评论!欢迎来到 CouchDB 社区 :)

于 2016-11-04T18:06:27.127 回答