【发布时间】:2022-01-10 09:25:07
【问题描述】:
我正在尝试实现一种从表中删除所选行的方法。每行末尾都有一个Delete 链接,单击该链接将删除该行。当我运行它并单击Delete 链接时,它什么也不做。我没有收到任何错误,控制台显示0 row(s) updated 并且该行仍然存在。不知道我错过了什么。
app.get('/device-list', function (req, res) {
// query database to get all the devices
let sqlquery = 'SELECT * FROM devices';
// execute sql query
db.query(sqlquery, (err, result) => {
if (err) {
res.redirect('/');
}
res.render('device-list.html', { availableDevices: result });
});
});
app.get('/delete/:id', function (req, res, next) {
var sql = 'DELETE FROM devices WHERE id = ?';
var id = req.body.id;
db.query(sql, [id], function (err, result) {
if (err) {
throw err;
}
console.log(result.affectedRows + ' row(s) updated');
});
res.redirect('/device-list');
});
<table>
<thead>
<th>Name</th>
<th>Type</th>
<th>Room</th>
</thead>
<tbody>
<% availableDevices.forEach(function(device){ %>
<tr>
<td><%=device.Name %></td>
<td><%=device.Type %></td>
<td><%=device.Room %></td>
<td><a href="/edit/<%=device.id%>">Edit</a></td>
<td><a href="/delete/<%=device.id%>">Delete</a></td>
</tr>
<% }) %>
</tbody>
</table>
【问题讨论】:
-
您期望 ID 来自参数和正文。 app.get('/delete', function(){})。休息一样。
标签: javascript html mysql sql node.js