我正在使用带有node js的ejs框架。我可以获得json格式的所有索引名称。但我想要的只是索引的名称。我的代码如下所示-
var client = require('../routes/Connection.js');
//display all indexes
module.exports.allIndexes = function (searchData, callback) {
client.indices.getAliases({
index: "_all",
level: "indices"
}, function (error, response, status) {
if (error) {
console.log("search error: " + error)
}
else {
//callback(response);---> this works
callback(response.hits.hits); // ---> this doesn't
}
});
}如果我在回调中使用response,我会得到以下输出:
{
"index-1": {
"aliases": {}
},
"index-2": {
"aliases": {}
},
"index-3": {
"aliases": {}
},
"index-4": {
"aliases": {}
}
}当我在回调中使用response.hits.hits时,我得到了错误:“无法读取未定义的属性‘命中’”。我只想以列表的形式显示索引名称。仅供参考,在前端,我将响应传递为"results“:
<h1>Index</h1>
<% for(var i=0; i < results.length; i++) { %>
<%= results[i].indices %>
<% } %>当然,这并没有显示任何内容。
edit_1:
我按如下方式导入模块:在我的index.js中
router.post('/indexes', function (req, res) {
elasticModule.allIndexes(req.body, function (data) {
res.render('elasticGui', { title: 'Elasticsearch GUI', results: data });
});
});https://stackoverflow.com/questions/41346750
复制相似问题