首页 > 解决方案 > Node.js 快速删除 href 路由不起作用

问题描述

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

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

输入.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

标签: javascriptnode.jsfirebaseexpresshandlebars.js

解决方案


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

假设有一个成员类。

在服务器端:

    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
    }
});

推荐阅读