2016-07-24 10 views
0

私はかなり新しいExpressです。この場合、私はのページに<table>を持っています。そこには、エントリを削除するために各行に1つのリンクがあります。ユーザーがこれらのリンクをクリックするたびに、データベース内のそのエントリを削除する必要があります。これはSPAではなく、私はReactのような他のフロントエンドフレームワークを使用したくありません。Expressアプリケーションとのユーザー対話を管理する

これに対処する最良の方法は何ですか?

私はそれが新しいルート作成していたに対処された方法:すべての行の末尾に、フロントエンドで

router.get('/users/delete/:userId', db.deleteUser(req.query.deleteUser)); 

そして:

<a href="users/delete/deleteuser=77">Delete this user</a> 

しかし、それはいないようですこれについては最善の方法です。私はAJAXを使用することを考えましたが、テーブルの各行に隠れた入力とforを作成するためにオーバーヘッドが少しあります。どうもありがとう。

答えて

0

あなたは同じページに私は1つは、ユーザーを言う削除するには、2つのアイコンがある場合はどのような

サーバー側

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

下のルータで削除することができます1つはユーザーの接続を削除するには?このメソッドはスケールできますか? – ocram

+0

別のルータを作成して、ユーザと接続を削除することができます。例えばrouter.delete( '/ users /:id') 'とrouter.delete( '/ users /:id/connection')'のようなものです。何故なの? –

関連する問題