Я новичок в 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.Я вижу напечатанный журнал «Добавлено в БД с помощью обработчика обновлений», но не журнал самой функции обработчика обновлений.
Несколько вопросов:
- Я вызываю обновлениеобработчик правильно?Для меня это выглядит так, будто мы не можем его найти.
- какие-либо примеры кода, на которые я мог бы взглянуть?
- Кроме того, правильно ли я определил сам обработчик обновлений?Может ли это быть причиной, по которой nano не может ее найти?
Заранее спасибо ..