1

シンプルなcouchapp CRUDアプリケーションを構築しています。ビューを取得すると、CouchDB から 304 応答が返されます。futon では、同じビューがドキュメントを返します。以下は、ビューをクエリし、返されたアイテムを div に追加するスニペットです。JavaScript コンソールで、「null のプロパティ _id を読み取れません」というエラーが表示されます。

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>");
     }
    }
});
}

}
4

2 に答える 2

3

私はついに問題を理解しました。使った

couchapp generate view byitemname

私の見解を生み出すために。「map.js」と「Reduce.js」ファイルを作成しました。要件に応じて map.js ファイルを編集しましたが、reduce.js ファイルが空のため、ビューをフェッチすると、couchdb が null を返しました。

futon では、reduce.js を明示的に実行する必要があるため、ビュー "byitemname" が適切に機能したことに注意してください。

于 2011-11-22T04:33:09.633 に答える
1

304 は、データが既にブラウザのキャッシュにあることを意味します。あなたの観点では、それは 200 と同じですが、より高速です。

エラーを注意深く読むと、行の値フィールドが null であることがわかります。これは、次のようなことをしていることを意味します。

emit("something", null);

ビューのマップ機能で。マップ機能を投稿できますか?

于 2011-11-21T13:39:13.087 に答える