response.success让我"对象#<对象>没有方法'成功'"错误

Kof*_*nce 0 javascript parse-platform

我正在尝试设置用于处理我的javascript函数中的成功和错误的协议,但是当函数成功时它似乎没有合作.我收到以下错误:

Failed with: TypeError: Object #<Object> has no method 'success'
    at Object.Parse.Cloud.httpRequest.success (main.js:77:20)
    at Object.<anonymous> (<anonymous>:571:19)
Run Code Online (Sandbox Code Playgroud)

这是完整的功能:

// Sends search query to eBay

Parse.Cloud.define("eBayCategorySearch", function(request, response) {
          url = 'http://svcs.ebay.com/services/search/FindingService/v1';

  Parse.Cloud.httpRequest({
      url: url,
      params: {     
       'OPERATION-NAME' : 'findItemsByKeywords', 
       'SERVICE-VERSION' : '1.12.0',
       'SECURITY-APPNAME' : '*App ID GOES HERE*',
       'GLOBAL-ID' : 'EBAY-US',
       'RESPONSE-DATA-FORMAT' : 'JSON',
       'itemFilter(0).name=ListingType' : 'itemFilter(0).value=FixedPrice',
       'keywords' : request.params.item,

     },
      success: function (httpResponse) {


// parses results

          var response = JSON.parse(httpResponse.text);
          var items = [];

          response.findItemsByKeywordsResponse.forEach(function(itemByKeywordsResponse) {
            itemByKeywordsResponse.searchResult.forEach(function(result) {
              result.item.forEach(function(item) {
                items.push(item);
              });
            });
          });


// count number of times each unique primaryCategory shows up (based on categoryId), return top two


          var categoryResults = {};

          items.forEach(function(item) {
            var id = item.primaryCategory[0].categoryId;
            if (categoryResults[id]) categoryResults[id]++;
            else categoryResults[id] = 1;
          });

          var top2 = Object.keys(categoryResults).sort(function(a, b) 
            {return categoryResults[b]-categoryResults[a]; }).slice(0, 2);
          console.log('Top categories: ' + top2.join(', '));



// compare categoryResults to userCategory object

          var userCategory = ['9355']; 

          var AnyItemsOfCategoryResultsInUserCategory = Object.keys(categoryResults).some(function(item) {
            return userCategory.indexOf(item) > -1;
          });
          console.log('Matches found: ' + AnyItemsOfCategoryResultsInUserCategory);

          var ItemsOfCategoryResultsInUserCategory = Object.keys(categoryResults).filter(function(item) {
            return userCategory.indexOf(item) > -1;
          });
          console.log('User categories that match search: ' + ItemsOfCategoryResultsInUserCategory);

          response.success('Victory!');


  },
          error: function (httpResponse) {
              console.log('error!!!');
              response.error('Request failed with response code ' + httpResponse.status);
          }
     });
});
Run Code Online (Sandbox Code Playgroud)

它引用的第77行是这一行:

response.success('Victory!');
Run Code Online (Sandbox Code Playgroud)

Mor*_*sen 6

这条线:

var response = JSON.parse(httpResponse.text);
Run Code Online (Sandbox Code Playgroud)

你设置response为一个json对象,据我所知,没有任何response.success函数添加到对象.我想response你想要的是传入的那个

Parse.Cloud.define("eBayCategorySearch", function(request, response) {
Run Code Online (Sandbox Code Playgroud)

所以你需要重命名一个响应对象.