【问题标题】:Temporary view works, /mydb/_design/mydesigndoc/_view/myview doesn't. Why?临时视图有效,/mydb/_design/mydesigndoc/_view/myview 无效。为什么?
【发布时间】:2013-08-05 16:57:48
【问题描述】:

嗨!

一般是 web 开发新手,具体是 couchdb。

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

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

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

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

谁能帮帮我?

(在 couchdb 1.2、Kanso 0.3.1 上运行)

【问题讨论】:

    标签: javascript couchdb kanso


    【解决方案1】:

    我又回答了我自己的问题。再次,它非常初级。

    所以,如果我希望 couchdb 为我提供 viewsomething 必须告诉它是 map 还是 reduce。我没有。这是简单(但令人尴尬)的解决方案:

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

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

    【讨论】:

    • 感谢您在找到答案后回答您自己的问题!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 2010-10-24
    • 1970-01-01
    • 2019-05-30
    • 2022-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多