CouchDB返回"没有评估函数"

时间:2012-05-23 14:48:04

标签: couchdb

我收到了这段代码

 {
    "_id": "_design/test",
    "_rev": "10-651aa6314effdad0bca00fc4a3da38f6",
    "views": {
       "foo": {
           "map": "(function(doc){ emit(doc._id, doc._rev)})"
       },
       "bar": {
           "map": "(function(doc){if(doc.date && doc.title) {emit(doc.date, doc.title);})"
       }
      }
    }

为什么会返回:

  

表达式不会对函数进行评估。 ((new String(“(function(doc){if(doc.date&& doc.title){emit(doc.date,doc.title);})”)))

1 个答案:

答案 0 :(得分:1)

我知道这个问题已经过时了,答案实际上是在问题的评论中,但似乎应该有答案。

缺少该函数的最后一个大括号。缩进,如下所示:

function(doc) {
  if (doc.date && doc.title) {
    emit(doc.date, doc.title);
  }
}

注意一行版本末尾的两个括号:

function(doc){if(doc.date && doc.title){emit(doc.date, doc.title);}}

我更喜欢缩进和使用空格,所以我不会错过这些东西。