加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angular JS:REST/CRUD后端的GET/POST/DELETE/PUT客户端的完整示

发布时间:2020-12-17 09:05:50 所属栏目:安全 来源:网络整理
导读:我已经实现了REST / CRUD后端,以下面的文章为例: http://coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb/。我有MongoDB本地运行,我不使用MongoLabs。 我遵循使用ngResource和Factory模式的Google教程,我有查询(GET
我已经实现了REST / CRUD后端,以下面的文章为例: http://coenraets.org/blog/2012/10/creating-a-rest-api-using-node-js-express-and-mongodb/。我有MongoDB本地运行,我不使用MongoLabs。

我遵循使用ngResource和Factory模式的Google教程,我有查询(GET所有项目),获取项目(GET),创建项目(POST)和删除项目(DELETE)工作。我无法以后端API想要的方式实现PUT – 对包含id(… / foo /)的URL的PUT,并且还包括更新的数据。

我有这个位的代码来定义我的服务:

angular.module('realmenServices',['ngResource']).
    factory('RealMen',function($resource){
    return $resource('http://localhost:3000/realmen/:entryId',{},{
      query: {method:'GET',params:{entryId:''},isArray:true},post: {method:'POST'},update: {method:'PUT'},remove: {method:'DELETE'}
    });

我从这个控制器代码调用方法:

$scope.change = function() {
    RealMen.update({entryId: $scope.entryId},function() {
            $location.path('/');
    });
}

但是当我调用update函数时,URL不包括ID值:它只是“/ realmen”,而不是“/ realmen / ID”。

我试过各种解决方案涉及添加“RealMen.prototype.update”,但仍然无法获得entryId显示在URL上。 (它也看起来像我必须建立JSON只包含数据库字段值自己 – POST操作为我自动创建一个新的条目时,但似乎没有一个数据结构只包含当我查看/编辑单个条目时的字段值)。

是否有一个示例客户端应用程序以预期的RESTful方式使用所有四个动词?

我还看到Restangular的参考和另一个解决方案,覆盖$ save,以便它可以发出POST或PUT(http://kirkbushell.me/angular-js-using-ng-resource-in-a-more-restful-manner/)。这种技术似乎变化如此之快,似乎没有一个好的参考解决方案,人们可??以用作一个例子。

我是Restangular的创造者。

您可以查看此CRUD示例,了解如何在没有所需的URL配置和$ resource配置的情况下PUT / POST / GET元素。除此之外,你可以使用嵌套的资源,没有任何配置:)。

查看这个plunkr示例:

http://plnkr.co/edit/d6yDka?p=preview

您还可以查看README并在此处查看文档https://github.com/mgonto/restangular

如果您需要一些不在那里的功能,只需创建一个问题。我通常添加一个星期内要求的功能,因为我也使用这个库为我所有的AngularJS项目:)

希望它帮助!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读