CouchApp не может получить пары ключ / значение из представления, но Футон может

Я создал простой couchapp и развернул его в своем экземпляре CouchDB. Тем не менее, я заметил аномалию. Созданное представление (через представление генерации couchapp...) возвращает данные, когда я просматриваю их в административном интерфейсе Futon CouchDB (вошел в систему как администратор), но не при запуске написанного мной couchapp. Вот пример моего кода:

$.CouchApp(function(app) {
app.view("wine_list", { success: function(json) {
    json.rows.map(function(row) {
       alert(row.key);
    }); 
}});
});

Результат, который я получаю из функции alert() выше, равен 'null'.

И когда я перехожу к: http://localhost:5984/winedb/_design/wineapp/_view/wine_list, я получаю:

{"rows":[
{"key":null,"value":null}
  ]}

Но, если я открою интерфейс администратора Futon и перейду к дизайну документа / представления, я смогу увидеть записи. Теперь в Futon я вошел как администратор. Итак, я думаю, я должен конкретные учетные данные аутентификации в моем коде JavaScript couchapp? Если так, то как?

1 ответ

Решение

Если в вашем представлении есть и карта, и компонент сокращения, это может быть ошибкой пользовательского интерфейса в Futon.

По умолчанию CouchDB предоставляет карту и сводит результаты к запросам. Чтобы увидеть только результаты карты, вы должны предоставить ?reduce=false параметр.

По умолчанию Futon предоставляет ?reduce=false параметр, и вы должны установить флажок "уменьшить", чтобы получить поведение "по умолчанию".

Другими словами, добавить reduce=false на ваш запрос. Это помогает?

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