0

Couchdb 1.6.1 を使用しています。私はショーの内部testデザインを持っています。

{
   "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)})"
   }
}

なぜこのエラーが発生するのですか?

4

1 に答える 1

1

したがって、まず、show 関数をビュー関数のように使用しています (これはまったく異なります)。

本当に show "function" を使用したい場合は、このドキュメントを参照することをお勧めします。Show 関数は、データを HTML として、または必要なフォーマットで返すために使用されます。通常、次のように show 関数を定義します。

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

ご提供いただいた関数は、ビューで使用されるマッピング関数です。詳細なドキュメントについては、このリンクを参照してください。その場合は、使用するだけでよいthis.database.view()と思います。

于 2016-09-11T15:47:12.853 に答える