Я пытаюсь вывести массив строк из базы данных в раскрывающееся меню на веб-сайте, который я создал. У меня все работает нормально, за исключением окончательной передачи данных из метода поиска на сайт. Сейчас данные в форме Обещания, и я не могу понять, как их распечатать на моей веб-странице. сейчас я просто отправляю его на localhost: 3000, я еще не дошел до того места, где я помещаю его в выпадающий список. Как бы я это сделал?
Я нашел очень очень мало по этой проблеме в Интернете и, таким образом, в основном просто пытался взломать исправления, которые на самом деле не работали (использование метода resol (), метода all ()). оба из них привели к синтаксическим ошибкам. Кстати, все имена Var / SQL были изменены. Моя последняя попытка ниже:
//code that sends the names to the webpage
app.get('/formfetch', function(req, res) {
const data = async() => {
let rawDat = await dbFormFetch.getNames();
return rawDat;
}
}
const hNs = data();
hNs.then((names) => {
if (names === null) {
res.end("Error: Names list came through as null.");
} else if (names.length > 0) {
resolve(names);
for (var i = 0; i < names.length; i++) {
res.end(names[i]);
}
res.status('200');
}
})
.catch((err) => {
res.status('404').json(err)
console.log("conversion of promise failed")
})
});
//the getNames() method (in a different file)
async function getNames() {
console.log("trying to get Names");
let query = `select NAME from NAMESTAB`;
console.log("query: " + query);
const binds = {};
const result = await database.simpleExecute(query, binds);
var results = [];
console.log("for loop in formfetch.js: ");
for (var i = 0; i < result.rows.length; i++) {
results[i] = i + ": " + result.rows[i].NAME+ ' \n';
}
return results;
}
Метод res.send из функции app.get выводит на локальный хост «Сделано на веб-сервере:». Я проверил консоль и не увидел ничего скрытого в html или что-то в этом роде.
** Примечание: все данные, которые должны быть в обещании, находятся в коде (я могу распечатать его на консоли в любой точке кода), но когда я размещу его на веб-сайте, он не будет напечатан. **