Чтение данных из представления с использованием nano

Я новичок в node.js и couchdb, поэтому я изучал и выполнял некоторые тесты кода, чтобы понять, как они работают.

Я использую пакет nano для работы с couchDBs в node.js. Мне удалось подключиться к базе данных, а также вставить данные в нее. Но я изо всех сил пытался понять, как запрашивать данные.

Я прочитал документацию о представлениях в couchDB, и с тех пор я пытался извлечь данные из представления, созданного с именем customerView (имя базы данных - testsqueila).

Название дизайна представления - "_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' description: 'couch db return 404'.

Спасибо за любую помощь!

1 ответ

Решение

Во-первых, я предлагаю вам взглянуть на нано-документацию, которая детализирует все, что вам нужно знать о вызовах API.

_design/custdoc/_view/customersViewбудет действительным, только если вы будете напрямую запрашивать HTTP API CouchDB. С 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/. В твоем случае это кастдок.

Viewname - это имя представления, которое вы хотите запросить. В вашем случае это клиенты.

Не стесняйтесь комментировать, если некоторые моменты неясны! Добро пожаловать в сообщество CouchDB:)

Другие вопросы по тегам