Удаление данных из БД
Давайте теперь удалим запись из БД,
указав в параметре
маршрута ее
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>