2017-02-16 3 views
0

Я пытаюсь обновить поле пользователя синтаксического анализа и функция останавливается в середине этого:Update Cloud Code Анализировать пользователь сервера

Parse.Cloud.define("modifyAdminStatus", function(request, response) { 

var userQuery = new Parse.Query(Parse.User); 
var isAdmin = request.params.adminStatus; 
console.log("isAdmin:" + isAdmin); 
userQuery.equalTo("username", request.params.username); 
userQuery.find({ useMasterKey: true, 
    success: function(user) { 
     console.log(user.length); 
     console.log("Got User") 
     console.log(user); 
     user.set("isAdmin", isAdmin); 
     console.log("Set Status"); 
     user.save(null, {useMasterKey: true, 
      success: function(user) { 
       response.success(); 
      }, 
      error: function(error) { 
       response.error(error.message); 
      } 
     }); 
    }, 
    error: function(error) { 
     response.error(error.message); 
    } 
}); 
}); 

я не получаю любые синтаксические ошибки, когда я запускаю код я получаю:

1 
Got User 
[ ParseUser { _objCount: 2, className: '_User', id: '2vigcitsl6' } ] 

в моей консоли. Тем не менее, он, кажется, останавливает код после того, как я попытаюсь установить статус администратора. Я попытался запустить его с помощью useMasterKey, но это ничего не делало, поэтому, возможно, я что-то упустил и где должен использовать useMasterKey?

ответ

1

Ответ:

query.find({ 
... code here 
}); 

Возвращает массив, используя query.first (или выбрать один объект из массива), а не получите один объект и позволит вам установить вещи на нем.

0

Когда вы пытаетесь сохранить пользователя, parse ожидает два параметра. Первый должен быть объектом, содержащим любые изменения, а вторым должен быть параметр сохранения.

Так что в вашем случае просто изменить ваш сохранить на user.save (null, {useMasterKey:true, success...})

, как вы есть сейчас бы создать колонку на Parse.User под названием useMasterKey, если разрешения позволяют.

+0

Я сделал это изменение, и он все еще не проходит через линию ParseUser с консоли. – trever

+0

Это странно. Единственное, о чем я могу думать, это поле isAdmin ожидает другого типа ценности, которое вы пытаетесь сохранить. – EReid

+0

Хмм нет, он выглядит правильно, isAdmin - это Bool, и я пытаюсь установить true/false на нем. Я просто проверял все это, чтобы быть уверенным. – trever