Я использую фреймворк ejs с узлом js. Я могу получить все имена индексов в формате json. Но я хочу только имена индексов. Мой код выглядит следующим образом-Elasticsearch показывает только имя всех индексов с узлом js
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
}
});
}
, если я использую ответ на обратный вызов, я получаю следующий результат:
{
"index-1": {
"aliases": {}
},
"index-2": {
"aliases": {}
},
"index-3": {
"aliases": {}
},
"index-4": {
"aliases": {}
}
}
и когда я использую response.hits.hits в обратный вызов я получаю сообщение об ошибке: msgstr "невозможно прочитать свойства" хитов "неопределенных". Я хочу показывать только имена индексов в виде списка. FYI, на переднем конце я ответил ответом как «результаты»:
<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 });
});
});
Где вы импортируете первый модуль? Покажите нам, как вы это делаете. – jstice4all
Также проверьте свойство 'response.errors' в аргументе ответа. – jstice4all
@ jstice4all Я отредактировал свой вопрос и добавил, что, пожалуйста, посмотрите, спасибо – Jane