CouchDB 返回“不评估为函数”

Lun*_*kzx 5 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);})"
       }
      }
    }
Run Code Online (Sandbox Code Playgroud)

为什么它返回:

表达式不求值为函数。((new String("(function(doc){if(doc.date && doc.title) {emit(doc.date, doc.title);})")))

小智 1

我知道这个问题很旧,答案实际上在问题的评论中,但似乎应该有一个已发布的答案。

函数的最后一个大括号丢失。缩进后,它看起来像下面这样:

function(doc) {
  if (doc.date && doc.title) {
    emit(doc.date, doc.title);
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意单行版本末尾的两个大括号:

function(doc){if(doc.date && doc.title){emit(doc.date, doc.title);}}
Run Code Online (Sandbox Code Playgroud)

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