我有以下函数,它将键,值和回调作为参数。该函数在编写时考虑了DRY原则,该函数的目的是使用传递给函数的键/值对Elasticsearch端点进行查找。
function foo (key, value, callback) {
client.search({
index: 'foo',
type: 'bar',
body: {
query: {
term: {
key: value
}
}
}
} ... )
}
我似乎遇到的问题是key
无法正确解释,而不是key
作为参数值,而是'键'的实际值。用于查询Elasticsearch。
答案 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
}
}
}
});
}