2015-04-21 52 views
3

我试图发送删除与链接请求,这样我就可以使用express.js路由它Node.js的:使删除请求与链接

<md-button href="/delete/{{userId}}">Delete</md-button> 

app.delete('/delete/:user_id', function(req, res) { 
    User.remove({ 
     _id : req.params.user_id 
    }, function(err, user) { 
     if (err) 
      res.send(err); 
     res.redirect('/'); 
    }); 
}); 

注后:MD-按钮来自https://material.angularjs.org和与href属性它的行为就像锚标签。

然而,它抛出一个错误:

Cannot GET /remove/5536d672106a3b540e0b0d96 

我可以更改默认的链接行为,使DELETE请求而不是GET或唯一的办法将是使一个AJAX调用和执行其他地方路由?

回答

1

是的,您需要在方法为DELETE的地方拨打ajax电话。点击一个链接将始终执行一个获取请求,除非你拦截它与JavaScript做别的事情和preventDefault()

,因为你正在使用的角度,你可以做这样的事情,而不是:

<md-button ng-click="vm.deleteUser(userId)">Delete</md-button> 

,并在你的控制器(你在这个例子绑定为“虚拟机”来工作),你可以有

this.deleteUser = function(userId){ 
    ... using your favorite lib do the delete request at '/delete/'+userId 
}