从nano调用couchdb更新处理程序函数

时间:2018-11-21 08:33:05

标签: couchdb couchdb-futon couchdb-nano

我是懒惰/纳米和数据库的新手。我有一个安装了ouchdb的Docker容器。我正在使用nano来访问沙发床功能。

我为数据库添加了一个更新处理程序功能:

{
  "_id": "_design/Update_Handler",
  "_rev": "11-2103c2595e4c56ddc0acc49e5d498f44",
  "$doctype": "updateHandler",
  "updates": {
    "addData": "function(doc,req) {console.log(\"add this data to db \");}"
  }
}

首先,我尝试编写一个简单的addData函数,并查看如何从nano调用它。我看到可以使用的db.atomic函数。

https://github.com/apache/nano#dbatomicdesignname-updatename-docname-body-callback

以下是此页面上列出的示例:

db.atomic("update", "inplace", "foobar",
{field: "foo", value: "bar"}, function (error, response) {
  assert.equal(error, undefined, "failed to update");
  assert.equal(response.foo, "bar", "update worked");
});

基于此,我尝试在我的代码中执行此操作:

this.myDB.atomic("updateHandler","addData",id1,data1,function(err, body){if(err) console.log(err);console.log("Added to DB using update handler\n");

但是,当我尝试执行类似操作时,出现404错误。看来我的nano实例无法找到已定义的addData处理函数。我确实看到了“使用更新处理程序添加到数据库”日志,但没有看到更新处理程序功能本身的日志。

一些问题:

  1. 我正确调用了更新处理程序吗?对我来说,它看起来像是我们找不到它。
  2. 我可以看的任何代码示例吗?
  3. 此外,我是否正确定义了更新处理程序本身?那可能是nano无法找到它的原因吗?

先谢谢了。

0 个答案:

没有答案