【问题标题】:Use function argument as key/value使用函数参数作为键/值
【发布时间】:2015-11-17 15:14:28
【问题描述】:

我有以下函数,它将键、值和回调作为参数。该函数的编写考虑了 DRY 原则,该函数的目的是使用传入函数的键/值来查找 Elasticsearch 端点。

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

我似乎遇到的问题是 key 没有得到正确解释,而不是 key 作为参数值,“key”的实际值用于对 Elasticsearch 的查询。

【问题讨论】:

    标签: javascript node.js elasticsearch dry


    【解决方案1】:

    您可以使用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
            }
          }
        }
      });
    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-04
      • 2021-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      相关资源
      最近更新 更多