使用nano

时间:2016-11-04 17:53:11

标签: node.js view couchdb couchdb-nano

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

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

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

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);
    });
  }
});

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

首先,我建议您查看nano documentation,其中详细介绍了有关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社区:)