0

I'm using Couchdb 1.6.1. I have a show inside test design.

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

i'm using Nano Node modules to interact with the database. When i run js file below this { Error: Expression does not eval to a function. ([object Object]) error message is returned.

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

I tried wrapping up the function with parentheses like below. That didn't work

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

Why I'm getting this error?

Jonathan Hall
  • 75,165
  • 16
  • 143
  • 189
s1n7ax
  • 2,750
  • 6
  • 24
  • 53

1 Answers1

1

So first of all, you are using a show function as if it were a view function (which is completely different).

If you really want to use a show "function", then I suggest you get a look into this documentation. Show function are used to return data as HTML or with any formatting your require. You normally define a show function like this:

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

The function you provided us is a mapping function which is used in views. See this link for further documentation. If it's the case, you would only need to use this.database.view() I guess.

Jonathan Hall
  • 75,165
  • 16
  • 143
  • 189
Alexis Côté
  • 3,670
  • 2
  • 14
  • 30