Couchapp возвращает 304 при запросе представления - PullRequest
1 голос
/ 21 ноября 2011

Я создаю простое приложение CRUD couchapp.Когда я получаю представление, я получаю ответ 304 от CouchDB.В футоне то же представление возвращает документы.Ниже приведен фрагмент, в котором я запрашиваю представление и добавляю возвращенные элементы в div.В консоли javascript я получаю сообщение об ошибке «Не удается прочитать свойство _id of null»

db = $.couch.db("itemly");
function updateItems(){
    $("#all").empty();
    db.view("itemly/byitemname",{ success: function(data){
     for (i in data.rows){
         $("#all").append('<div id="' + data.rows[i].value._id + '" class ="itemrow"><span>'+data.rows[i].value.name + "</span><span>"+data.rows[i].value.price + "</span><span>"+data.rows[i].value.category + "</span><span>"+'<a href="#" id="'+ data.rows[i].value._id + '" class = "edit"> Edit Item </a>' +"</span><span>"+'<a href="#" id="'+ data.rows[i].value._id + '" class = "remove"> Remove Item </a>' +"</span></div>");
     }
    }
});
}

}

Ответы [ 2 ]

3 голосов
/ 22 ноября 2011

Я наконец понял проблему.Я использовал

couchapp generate view byitemname

для генерации моего представления.Он создал «map.js», а также файл «Reduce.js».Я отредактировал файл map.js в соответствии с моим требованием, но пустой файл redu.js привел к тому, что couchdb вернул null при получении представления.

Обратите внимание, что в футоне представление "byitemname" работало правильно, потому что в футоне,Вы должны явно запустить Redu.js, но при извлечении из приложения это происходит автоматически.

1 голос
/ 21 ноября 2011

304 означает, что данные уже находятся в кеше браузера;для вашей точки зрения это то же самое, что 200, только быстрее.

Если внимательно прочитать ошибку, то это говорит о том, что поле значения строки равно нулю.Это означает, что вы делаете что-то вроде:

emit("something", null);

в функции карты вида.Можете ли вы опубликовать свою функцию карты?

...