Node.js Express Delete Delete路由不起作用

时间:2019-04-06 16:11:42

标签: javascript node.js firebase express handlebars.js

我的删除路线存在一些问题。它无法从index.js获取/ delete / {{id}}路由

我已经阅读了快速文档,并且必须与该文档编写相同的代码,但仍然无法正常工作

input.hbs

<main>
        <div class="container">
            <h1>Hasil Input</h1>
            <table class="table">
                <thead>
                    <tr>
                        <th>Nama</th>
                        <th>NIM</th>
                        <th>Action</th>
                    </tr>
                </thead>
                <tbody>
                    {{#each data}}
                    <tr>
                        <td>{{name}}</td>
                        <td>{{nim}}</td>
                        <td> 
                            <a href="delete/{{key}}" class="btn btn-danger">Delete</a>  
                        </td>  
                    </tr>
                    {{/each}}                       
                </tbody>
            </table>            
        </div>
    </main>

index.js

app.post('/delete/(:id)', (req,res,next) => {
    id = req.params.id; 
    ref = database.ref('Person/'+id );
    ref.remove()
    res.redirect('/input')
})

它仍然显示这样的消息

Cannot GET /delete/-LbdQOw7xbv_Vrp0OD-u

1 个答案:

答案 0 :(得分:0)

您可以使用delete方法来做到这一点, 这是一个简单的例子。

假设有一个Member类。

在服务器端:

    router.delete('url/:id',(req,res) => {
        const found = members.some(member => member.id === parseInt(req.params.id));

    if(found){
      // Do something
      res.json( { msg: "member deleted",members: members.filter( member => member.id !== parseInt(req.params.id))});
    }
else{
          res.status(400).json( { msg: `No member with the id of ${req.params.id}`})
        }

      });

在客户端, 您可以使用Ajax

$.ajax({
    url: 'url/id',
    type: 'DELETE',
    success: function(result) {
        // Do something
    }
});