2016-07-24 55 views
0

我对Express很新。在这种情况下,我在页面users中有一个<table>,其中我在每一行中都有一个链接来删除条目。每次用户点击这些链接时,我都必须删除数据库中的该条目。这不是一个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

您可以在路由器中删除类似下面

服务器端

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'; 
     } 
    }); 
} 
+0

什么,如果在同一个页面上我有两个图标,一个是删除说用户和一个删除用户的连接?这个方法可以缩放吗? – ocram

+0

您可以创建单独的路由器来删除用户和连接。例如'router.delete('/ users /:id')''和'router.delete('/ users /:id/connection')'。为什么不? –

相关问题