Ich benutze ejs Framework mit Knoten js. Ich kann alle Indexnamen im JSON-Format erhalten. Aber was ich will, sind nur die Namen der Indizes. Mein Code sieht aus wie als folgt-Elasticsearch zeigt nur den Namen aller Indizes mit Knoten 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
}
});
}
wenn ich Antwort in Rückruf verwenden, erhalte ich die folgende Ausgabe:
{
"index-1": {
"aliases": {}
},
"index-2": {
"aliases": {}
},
"index-3": {
"aliases": {}
},
"index-4": {
"aliases": {}
}
}
und wenn ich response.hits.hits in Rückruf verwende ich den Fehler: "kann Eigenschaft 'Treffer' von undefined nicht lesen". Ich möchte nur die Indexnamen als Liste anzeigen. FYI, in Front-End, übergab ich die Antwort sagen als "Ergebnisse":
was natürlich nichts zeigt.
edit_1:
importiere ich das Modul wie folgt: in meinem index.js
:
router.post('/indexes', function (req, res) {
elasticModule.allIndexes(req.body, function (data) {
res.render('elasticGui', { title: 'Elasticsearch GUI', results: data });
});
});
Wo importieren Sie das erste Modul? Zeig uns, wie du es machst. – jstice4all
Überprüfen Sie auch die Eigenschaft response.errors in Ihrem Antwortargument. – jstice4all
@ jstice4all Ich habe meine Frage bearbeitet und hinzugefügt, bitte sehen Sie, danke – Jane