我对Express很新。在这种情况下,我在页面<table>
中有一个users
,其中每行都有一个链接来删除该条目。每次用户单击这些链接时,我都必须删除数据库中的该条目。这不是SPA,我不(想)使用其他前端框架,如React。
处理此问题的最佳方法是什么?
我处理它的方式是创建一条新路线:
router.get('/users/delete/:userId', db.deleteUser(req.query.deleteUser));
并且在每一行末尾的前端:
<a href="users/delete/deleteuser=77">Delete this user</a>
但这似乎不是解决这个问题的最好方法。我想过使用AJAX但我发现创建一个隐藏的输入和for表格的每一行都有点开销。非常感谢。
答案 0 :(得分:0)
您可以在以下路由器中删除
服务器侧
router.delete('/users/:userId(\\d+)', deleteUser);
...
function deleteUser(req, res, next) {
db.deleteUser(req.params.userId, function(err) {
if (err)
return res.status(500).send(err.message);
res.status(200).end();
});
}
客户端
<a onclick="deleteUser(77)">Delete this user</a>
...
function deleteUser(id) {
$.ajax({
type: 'DELETE',
url: '/users/' + id,
success: function(data) {
window.location.href = '/users';
}
});
}