Ярослав
Искусственный Интеллект
(107883)
4 года назад
В мидлвэре Экспресса:
1. Создать массив select-запросов (строк с SQL);
2. Единственной функцией отмапить этот массив строк в массив промисов (каждый из которых выполняет запрос, и резолвит его результат в коллбэке query);
3. Вызвать статический метод Promise.all, передав массив промисов аргументом.
Так ты получишь результаты всех запросов после их завершения. И заодно, удобную обработку ошибок.
А когда задача требует выполнять запросы последовательно (работая с промежуточными выборками), вместо массива и Promise.all будет логичнее использовать обычный процедурный код с await'ами запросов (так же промисифицированных).
peto petoУченик (95)
4 года назад
немного не понимаю.
Почитал про промисы, как-то понятнее стало.
Что значит отмапить массив строк в массив промисов? Чтобы каждый из промисов делал запрос из БД? 2 пункт не понял, если честно
peto petoУченик (100)
4 года назад
а сервисы типа gmail это и есть такие next.js приложения? Если учесть, что по сути туда постоянно просто закачиваются данные, а страница остается постоянно одна и та же
Node.js express
СУБД: MySQL
app.get("/create", function(req, res){
pool.query("SELECT * FROM users", function(err, data) {
if(err) return console.log(err);
res.render("create.hbs", {
users: data
});
});
});
в примере выше я смог только таблицу пользователей передать в представление. Как можно передать еще одну таблицу?