管理用户与Express应用程序的交互

时间:2016-07-24 18:51:06

标签: html node.js ajax express url-routing

我对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表格的每一行都有点开销。非常感谢。

1 个答案:

答案 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';
        }
    });
}