2016-12-11 4 views
0

私のREST APIを使用すると、ユーザーはアイテムの検索方法を決めることができます。 デフォルトと2番目のオプションの2つのオプションがあります。mongo findOneにルックアップキーを動的に設定しました

URLは次のようになります。

/アイテム/ {ID}

必要に応じてユーザーが

/アイテム/ {ID}、すなわち、リクエストに応じて 'クエリ' を渡すことができますキー=? sku

私はNode.js、restifyとmongoJSを使用しています。私は次のようにクエリ内の「キー」を設定dynamicllyしようとしている:

// default lookup is always id 
    var queryKey = '_id'; 

    // if the optional 'via' query is set to sku change the lookup key 
    if(viaVal === 'sku'){ 
     queryKey = 'sku' 
    } 

    mongo.idpool.findOne({queryKey: id}, 

私がデバッグだと動作しない場合これは、「不正アクセス」エラーが発生します。

  • この原因は何ですか。
  • これを達成する適切な方法は何ですか?

答えて

1

あなたは、プロパティ名として変数を使用するときに角括弧で囲んでcomputed property name構文を使用する必要があります。答えを

mongo.idpool.findOne({[queryKey]: id}, ... 
+1

感謝をし、リンクを共有します。私はそれをGoogleにしようとしていたが、 "計算されたプロパティ名"が検索する用語だったか分からなかった。再度、感謝します! – Cyph

関連する問題