Чтение данных из представления с использованием 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:)