不是最简单的标题。
无论如何,我的应用程序基于nodejs
/构建,expressjs
并为URL设置了API:
编辑:我正在使用的当前代码是:
$scope.updateProduct = $resource('/api/updateProduct/:product/:param/:value',{},{
query: {method:'GET'},
post: {method:'POST'},
save: {method:'PUT', params: {brand: '@brand', param:'@param', value:'@value'}},
remove: {method:'DELETE'}
});
$scope.updateProduct.save({
product : $scope.post._id,
param: 'likes',
value: $scope.user._id
});
目前,它会调用/api/updateProduct
而不是/api/updateProduct/<product>/<param>/<value>
像我演奏时那样$scope.updateProduct.get()
。
在我的控制台中,我看到(例如):
PUT /api/updateBrand/Quay%20Eyewear%20Australia/userTags/sunglasses,%20classic 200 30ms - 2.31kb
但是,实际上并没有访问该API /没有任何反应。有趣的是,如果我localhost:5000/api/updateBrand/Quay%20Eyewear%20Australia/userTags/sunglasses,%20classic
在浏览器中转到,它将发布正确的数据并更新数据库中的产品,因此$resource
调用的方式肯定是错误的。
如您在ngResource docs中所见,$resource
接收3个参数:
$resource(url[, paramDefaults][, actions]);
您正在将操作作为参数传递。
正确的版本是:
$scope.updateProduct = $resource('/api/updateProduct/:product/:param/:value',{}, {'save':{method:'POST'}});
请注意,这甚至没有必要,因为在使用时,$resource
您已经创建了默认方法:
{
'get': {method:'GET'},
'save': {method:'POST'},
'query': {method:'GET', isArray:true},
'remove': {method:'DELETE'},
'delete': {method:'DELETE'}
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句