2016-11-04 7 views
0

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

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

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

Название проекта дизайна «_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); 
    }); 
    } 
}); 

Происходит нечто неправильное, поскольку ничего не печатается на консоли. Я не уверен, что я использую имя дизайна в неправильном ключе или что-то еще. Кто-нибудь имеет представление о том, что происходит? Я также добавил код для получения значения err, и в конце сообщения в консоли он говорит: errid: 'non_200' description: 'couch db received 404'.

Благодарим за помощь!

ответ

0

Во-первых, я предлагаю вам взглянуть на nano documentation, в котором подробно описаны все, что вам нужно знать о вызовах 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/. В вашем случае это custdoc.

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

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

+0

Alexis, спасибо вам! Я действительно смутился насчет названия дизайна. Теперь это работает. Мне нужно выяснить, как получить значение doc, но я посмотрю документацию. Еще раз спасибо! –

+0

как я могу принять ваш ответ? Я ищу что-то вроде кнопки, чтобы сделать это, но я все еще не нашел его. Конечно, я хочу это сделать, ты был очень милым! –

+0

Чтобы принять ответ, у вас обычно есть чек, чтобы щелкнуть правой кнопкой по числу голосов. Голоса определяются слева от ответа, и вы можете повышать или понижать уровень, если вы сочтете это полезным. –