我得到了这个代码
{
"_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)
我更喜欢缩进并使用空格,所以我不会错过这些东西。