不等于 couchdb 中的函数错误

does not eval to a function error in couch db

我正在使用 Couchdb 1.6.1。我在test design.

里面有一个展示
{
   "select": {
       "map": "function(a){emit(null,a._id)}"
   }
}

我正在使用 Nano 节点模块与数据库交互。当我运行下面的js文件返回这个{ Error: Expression does not eval to a function. ([object Object])错误信息。

this.database.show('test', 'select', 35435156453, function (error, body) {
  if(error) {
      console.log(error);
  }
  else{
      console.log(body);
  }
});

我试着用括号把函数包起来,如下所示。那没用

{
   "select": {
       "map": "(function(a){emit(null,a._id)})"
   }
}

为什么会出现此错误?

所以首先,您正在使用一个显示函数,就好像它是一个视图函数(这是完全不同的)。

如果你真的想用show "function",那我建议你看看this documentation. Show function are used to return data as HTML 或者使用您需要的任何格式。您通常会像这样定义一个显示函数:

{
    "select":"function(doc,req){return 'Return your stuff here.'}"
}

您提供给我们的函数是在视图中使用的映射函数。有关更多文档,请参阅 this link。如果是这样的话,我猜你只需要使用this.database.view()