0

CouchDB データベースに、新しいキーと値のペアを追加したいドキュメントがあります。Cradle を使用して DB ( https://github.com/cloudhead/cradle ) と通信していますが、存在しないフィールドで更新しようとするとエラーが発生します。私の文書は次のようにレイアウトされています:

{
 "_id": "document",
 "_rev": "some_revision",
 "key1": "index.html",
 "key2": "hows.html",
 "key3": "about.html"
}

そして、私が使用しようとしていたコードは次のようになります。

db.merge('document', {
        req.body.key: req.body.value
      }, function (err, res) {
        console.log('added to document')
    });

そして、私が得るエラーは次のようになります:

SyntaxError: Unexpected token .

req.body の間の (.) を参照します。

これを処理する方法について誰か良い方向性がありますか? クレードルはこれまでのところ私にとって素晴らしいものでしたが、これは必要以上に難しいようです!

4

1 に答える 1

1

これは単なる Javascript の問題であり、Cradle によるものではありません。動的に名前が付けられた小道具を設定するためにこれを行うことはできません:

  {
    req.body.key: req.body.value
  }

次のようにする必要があります。

var temp = {}
temp[req.body.key] = req.body.value
db.merge('document', temp, ...
于 2013-03-10T03:59:11.780 に答える