向 json-server 添加新对象; AngularJS

Posted

技术标签:

【中文标题】向 json-server 添加新对象; AngularJS【英文标题】:add new object to json-server; AngularJS 【发布时间】:2016-12-27 11:55:21 【问题描述】:

我有一个 Angular 应用程序,它应该与 json-server 一起用于检索数据和添加新数据(用户反馈)。所以我有一些带有一些数组的 json 数据库,其中一个是 "feedbacks":[],它目前是空的。在我得到的 PUT 方法上:

PUT /feedbacks 404 来自服务器,这是 chrome 控制台 PUT http://localhost:3000/feedbacks 404 (Not Found)

这是我的服务:

angular.module('myApp')
        .constant("baseURL", "http://localhost:3000/")
.service('feedbackService',['$resource','baseURL',function($resource,baseURL)
      this.getFeedback=function()
        return $resource(baseURL+"feedbacks/:date",null,
          'update':
            method:'PUT'
          
        );
      ;
    ]);

这是控制器:

    // contactus.html controllers
.controller('ContactController', ['$scope', function($scope) 
            $scope.feedback = firstName: "",lastName: "",email: "",date: "";
        ])
        // Feedback form controller
        .controller('FeedbackController', ['$scope', 'feedbackService', function($scope, feedbackService) 
            $scope.feedbacks = feedbackService.getFeedback().query(function(response) 
                $scope.feedbacks = response;
            );
            $scope.sendFeedback = function() 
                    $scope.feedback.date = new Date().toISOString();
                    $scope.feedbacks.push($scope.feedback);
                    feedbackService.getFeedback().update($scope.feedbacks);
                    $scope.feedbackForm.$setPristine();
                    $scope.feedback = firstName: "",lastName: "",email: "", date:"";
            ;
        ])

getFeedbacks() 方法有效,服务器发送 200,但对于 PUT,我收到 404。

【问题讨论】:

您必须检查您的服务层。前端无事可做。 @ramamoorthy_villi 我是新手,我应该在服务层检查什么? 检查 put 方法在服务器部分工作 @ramamoorthy_villi 是的 PUT 方法有效,因为我有另一个控制器用于评论并且 PUT 工作正常 【参考方案1】:

好的,我解决了 :)) 一个非常愚蠢的错误。不需要推送然后更新,因为我想在数组中创建新对象。

$scope.feedback.date = new Date().toISOString();
feedbackService.getFeedback().save($scope.feedback);

我也将服务更改为:

return $resource(baseURL+"feedbacks/:id",null,

为每个对象自动增加 id

【讨论】:

以上是关于向 json-server 添加新对象; AngularJS的主要内容,如果未能解决你的问题,请参考以下文章

使用 JWT 对 json-server 进行授权

如何在 C++ 中向向量中添加新对象

无法向 Mongoose 查询返回的对象添加新属性 [重复]

无法向 Mongoose 查询返回的对象添加新属性 [重复]

使用 JavaScript 向 JSON 对象添加新属性(元素)

Javascript映射函数:向对象添加新键和值[重复]