1

你好!

一般是 web 开发的新手,特别是 couchdb。

现在我试图了解如何调用视图。我通过基于Kan.so 上最简单的表单的应用程序生成了相当简单的文档并提交到我的数据库,我在 Futon 中尝试了不同的视图。一切安好。然后我尝试在设计文档中创建一个视图并从代码中调用。无济于事。

即使是下面这样一个简单的视图,在临时视图中也是正确的:

function(doc) {
if (doc.type == 'person') {
    emit(doc._id, doc);
   }
};

但是像这样放入lib/views.js-file(仅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"}

所以,函数子句有问题。好吧,我看不到它。该代码是从蒲团临时视图中复制粘贴的。当我尝试从下拉列表中查看视图时,它会在从设计文档中剪切和粘贴到 Futon 中的临时视图时出现故障,效果很好。可能还有别的问题,就是想不通。

谁能帮帮我吗?

(在 couchdb 1.2、Kanso 0.3.1 上运行)

4

1 回答 1

2

我再次回答了我自己的问题。这又是相当初级的。

所以,如果我想要 couchdbview为我做点什么,我必须告诉它是否是mapor的问题reduce。我没有。这是简单(且令人尴尬)的解决方案:

exports.map_type = {
map: function(doc) {
    if (doc.type == 'person') {
        emit(doc._id, doc);
    }
  }
};

无论如何,我已经从我的错误中吸取了教训。我希望其他人也可以利用我的胡言乱语..

于 2013-08-06T07:00:14.417 回答