我创建了一个简单的couchhapp,并将其部署到我的CouchDB实例中。然而,我注意到了一个异常。当我在CouchDB的Futon管理界面(以管理员身份登录)中查看时,创建的视图(通过couchapp生成视图…)会返回数据,但当我运行我编写的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管理界面并导航到设计文档/视图,我可以看到记录。现在,在富顿,我以管理员身份登录。所以,我的猜测是,我应该在我的couchapp javascript代码中指定特定的身份验证凭据?如果是,如何?
如果您的视图同时包含map和reduce组件,那么这可能是Futon中的用户界面错误。
默认情况下,CouchDB将提供映射,并将结果减少到查询。若要仅查看映射结果,必须提供?reduce=false
参数。
默认情况下,Futon提供?reduce=false
参数,您必须选中"reduce"复选框才能获得"default"行为。
换句话说,将reduce=false
添加到查询中。这有帮助吗?