嗨!
一般来说,Web开发的新手,特定于couchdb。
现在我尝试了解如何调用视图。我有相当简单的文档生成并通过基于Simplest possible form found on Kan.so的应用程序提交到我的数据库,我在Futon中尝试了不同的视图。一切安好。然后我尝试在设计文档中创建一个视图,并从代码中调用。无济于事。
即使这样一个简单的视图如下所示在临时视图中也是正确的:
function(doc) {
if (doc.type == 'person') {
emit(doc._id, doc);
}
};
但请加入lib/views.js
这样的文件(仅添加exports.map_type =
):
exports.map_type = function(doc) {
if (doc.type == 'person') {
emit(doc._id, doc);
}
};
即使从浏览器中的地址字段调用也不会工作,如下所示:
http://localhost:5984/simplestpossibleform/_design/my_form/_view/map_type
结果如下:
{"error":"unknown_error","reason":"function_clause"}
因此,函数子句出了问题。好吧,我看不到它。代码是从Futons临时视图中复制粘贴的。当我从下拉列表中尝试视图时,它会在从设计文档剪切和粘贴到Futon中的临时视图时出错。也许还有其他错误,只是想不出来。
请有人帮助我吗?
(在couchdb 1.2上运行,Kanso 0.3.1)
答案 0 :(得分:2)
我已经回答了我自己的问题。而且它再次非常基本。
所以, if 我希望couchdb为view
提供一些东西我必须告诉它是map
还是{reduce
{1}}。我没有。这是简单(和令人尴尬)的解决方案:
exports.map_type = {
map: function(doc) {
if (doc.type == 'person') {
emit(doc._id, doc);
}
}
};
无论如何,我从错误中吸取了教训。我希望其他人也可以利用我的ramblings ......