发布搜索数据

时间:2015-12-16 13:00:22

标签: angularjs node.js rest

这里我需要在滚动中搜索名称,因为我在get call中发送搜索数据查询字符串,但我需要在post中。

这是我的服务器和客户端控制器路由和服务。此外,我在服务器端处理搜索。如何发布用户已被搜索的数据,并将其传递给客户端和服务器端。

 client controller service:

     'use strict';
     angular.module('details').factory('DetailService', ['$resource',
        function($resource) {
         return $resource('details', { 

         }, 
          searchUsers:{
                method: 'GET',
              }
           });
          }
          ]);
Angular controller:
         $scope.searchServer = function(searchData){

          DetailService.searchUsers({search:searchData},function(response){
          }, function(error){
              $scope.status = 'Unable to load customer data: ' + error.message;
          });
        }
 my Server side controller:
         exports.searchCust = function (req, res) {

          var strWhere = {
        corporateName: search
        };
       db.Customer.findAll({
        where: [strWhere],
            }).then(function (customers) {

              if (!customers) {
                 return res.status(400).send({
                message: 'Customer not found.'
            });
        } else {
            res.jsonp(customers);
        }
    })
                  };
       my server sideroute:
       app.route('/details').all(customersPolicy.isAllowed)
         .get(details.searchCust);
           app.param('search', details.searchCust);
        };

1 个答案:

答案 0 :(得分:0)

我没有在所有细节中尝试,因为它看起来像是复制并粘贴在一起而没有阅读基础知识。但是,如果您想要POST请求,则需要在节点代码和Angular代码中设置它们,请参见下文。更重要的是,Angular没有使用JSONP,它使用JSON,所以你需要设置它。在searchUsers - 资源调用中,您只实现了错误分支,因此结果将消失。您现在可以在$scope.searchResults找到它们。

客户端控制器服务:

'use strict';
angular.module('details').factory('DetailService', ['$resource',
function($resource) {
    return $resource('details', {},
        searchUsers: {
            method: 'POST',
        }
    });
}]);

角度控制器:

$scope.searchServer = function(searchData) {

    DetailService.searchUsers({
        search: searchData
    }, function(response) {
        $scope.status = "OK";
        $scope.searchResults = response;
    }, function(error) {
        $scope.status = 'Unable to load customer data: ' + error.message;
    });
}     

我的服务器端控制器

exports.searchCust = function(req, res) {

    var strWhere = {
        corporateName: search
    };
    db.Customer.findAll({
        where: [strWhere],
    }).then(function(customers) {

        if (!customers) {
            return res.status(400).send({
                message: 'Customer not found.'
            });
        } else {
            res.json(customers);
        }
    })
};

我的服务器端路由:

app.route('/details').all(customersPolicy.isAllowed)
    .post(details.searchCust);
app.param('search', details.searchCust);
};