使用函数参数作为键/值

时间:2015-11-17 15:14:28

标签: javascript node.js elasticsearch dry

我有以下函数,它将键,值和回调作为参数。该函数在编写时考虑了DRY原则,该函数的目的是使用传递给函数的键/值对Elasticsearch端点进行查找。

function foo (key, value, callback) {
    client.search({
        index: 'foo',
        type: 'bar',
        body: {
            query: {
                term: {
                    key: value
                }
            }
        }
    } ... )
}

我似乎遇到的问题是key无法正确解释,而不是key作为参数值,而是'键'的实际值。用于查询Elasticsearch。

1 个答案:

答案 0 :(得分:3)

您可以使用bracket notation



function foo (key, value, callback) {
  var query = {
    index: 'foo',
    type: 'bar',
    body: {
      query: {
        term: {
        }
      }
    }
  };
  
  query.body.query.term[key] = value;

  client.search(query);
}




或者,如果你使用ES6,你可以这样做



function foo (key, value, callback) {
  client.search( {
    index: 'foo',
    type: 'bar',
    body: {
      query: {
        term: {
          [key]: value
        }
      }
    }
  });
}