CouchDB returns";不求值为函数;
我有这个密码CouchDB returns";不求值为函数;,couchdb,Couchdb,我有这个密码 { "_id": "_design/test", "_rev": "10-651aa6314effdad0bca00fc4a3da38f6", "views": { "foo": { "map": "(function(doc){ emit(doc._id, doc._rev)})" }, "bar": { "map": "(function(doc){if(doc.da
{
"_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);})"
}
}
}
为什么会返回一个:
表达式不求值为函数。((新字符串(((函数(doc){if(doc.date&&doc.title){emit(doc.date,doc.title);})”)
我知道这个问题很老,答案实际上在问题的评论中,但似乎应该有一个公布的答案 函数的最后一个大括号丢失。缩进后,它看起来如下所示:
function(doc) {
if (doc.date && doc.title) {
emit(doc.date, doc.title);
}
}
请注意单行版本中末端的两个大括号:
function(doc){if(doc.date && doc.title){emit(doc.date, doc.title);}}
我更喜欢缩进并使用空格,所以我不会错过这些东西。它可能在字符串的最开始处查找
函数
。尝试删除函数周围的括号。您还缺少右大括号。删除或添加括号不是解决方案。