АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗ndSqDPDR 38 of 41 menu
НОВИНКА: Практика на Реальных Проектах и Работы в Портфолио. Бесплатный курс! Жми для записи!

Удаление данных из БД

Давайте теперь удалим запись из БД, указав в параметре маршрута ее id.

Пусть у нас есть маршрут, в котором переменная del передается как параметр:

app.get('/remove/:del', async function(req, res) { res.render('delete'); });

Пусть этот параметр будет содержать информацию о id юзера, которого нужно удалить. После объявления переменной del передадим ее в SQL запрос через интерполяцию как ${del}:

app.get('/remove/:del', async function(req, res) { let del = req.params.del; let query = `DELETE * FROM users WHERE id=${del}`; res.render('delete'); });

Было бы удобно вывести на страницу с представлением сообщение об успешном удалении или появлении ошибки. Для этого объявим переменную message, которая сначала будет пустой. Далее пропишем конструкцию try-catch. В блоке try будут объявлены переменные results и fields. При успешном выполнении операции в сообщение передастся информация о том, с каким id был удален юзер. В случае возникновения ошибки, ее текст также передастся в представление:

app.get('/remove/:del', async function(req, res) { let del = Number(req.params.del); let query = `DELETE FROM users WHERE id=${del}`; let message = ''; try { let [results, fields] = await connection.query(query); message = `user with id=${del} is deleted`; } catch (error) { message = error.message; } res.render('delete', {message: message}); });

В файле представления delete.hbs пропишем код с переменной message:

<p>{{ message }}</p>

Сделайте так, чтобы в адресной строке можно было отправить GET запрос с id юзера и этот юзер удалялся из БД.

Модифицируйте предыдущую задачу так, чтобы на странице были ссылки для удаления каждого юзера:

<a href="/remove/1">user1</a> <a href="/remove/2">user2</a> <a href="/remove/3">user3</a>

Ссылки, конечно же, должны формироваться в цикле из полученных из БД данных.

Модифицируйте предыдущую задачу так, чтобы у вас был следующий HTML код:

<ul> <li>user1 <a href="/remove/1">удалить</a></li> <li>user2 <a href="/remove/2">удалить</a></li> <li>user3 <a href="/remove/2">удалить</a></li> </ul>

Модифицируйте предыдущую задачу так, чтобы у вас был следующий HTML код:

<table> <tr> <th>id</th> <th>name</th> <th>age</th> <th>salary</th> <th>delete</th> </tr> <tr> <td>1</td> <td>user1</td> <td>23</td> <td>400</td> <td><a href="/remove/1">удалить</a></td> </tr> <tr> <td>2</td> <td>user2</td> <td>25</td> <td>500</td> <td><a href="/remove/2">удалить</a></td> </tr> <tr> <td>3</td> <td>user3</td> <td>23</td> <td>500</td> <td><a href="/remove/3">удалить</a></td> </tr> </table>