Вызов функции обработчика обновления couchdb из nano - PullRequest
0 голосов
/ 21 ноября 2018

Я новичок в couchdb / nano и в базах данных в целом.У меня есть докер-контейнер с установленным couchdb.Я использую nano для доступа к функциям couchdb.

Я добавил функцию обработчика обновления для своей базы данных:

{
  "_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 не может ее найти?

Заранее спасибо ..

...