我正在开发一个MEAN堆栈应用程序,它本质上提供了一个界面,使我可以更直接地浏览我的数据库。我是表达/ Node.js / AngularJS的新手,但我正在寻找一种方法,通过单个AngularJS $ http请求从我的MongoDB中删除多个项目到我的express / Node.js服务器。
以下工作用于从我的数据库中删除单个元素,但我想要做的实际上是传递一个对象数组以从我的数据库中删除,因此我不必进行多个请求并加快进程。有没有办法做到这一点?
$http.delete('./api/db/'+opp_id)
.success(function(data){
$scope.items = data;
})
.error(function(data){
console.log("ERROR: " + data);
});
答案 0 :(得分:2)
如果您还调整API以处理数组
,这应该可行var idArray = [1,2,3,4,5,6];
$scope.delete = function(idArray) {
$http({ url: 'domain/resource',
method: 'DELETE',
data: {ids: idArray},
headers: {"Content-Type": "application/json;charset=utf-8"}
}).then(function(res) {
console.log(res.data);
}, function(error) {
console.log(error);
});
};
但是你必须知道某些应用服务器不允许使用HTTP DELETE主体;
来源:Is an entity body allowed for an HTTP DELETE request?
您还可以在查询参数中将ID数组作为逗号分隔列表传递。
所以你也应该尝试这种方法:
var idArray = [1,2,3,4,5,6];
$http(
method: 'DELETE',
url: '/items',
params: {
id: JSON.stringify(idArray)
}
)