2014-09-10 4 views
0

Я использую функцию облачного кода для моего приложения iOS. Я вызываю функцию облачную с этим кодом ...Ошибка: TypeError: Object не имеет метода 'set'

var moment = require("moment"); 

Parse.Cloud.define("registerActivity", function(request, response) { 
    var user = request.user; 
    user.set("lastActive", new Date()); 
    user.save().then(function (user) { 
     response.success(); 
    }, function (error) { 
     console.log(error); 
     response.error(error); 
    }); 
}); 

и с прошивкой я называю это так ...

[PFCloud callFunction:@"registerActivity" withParameters:@{}]; 

Почему я получаю эту ошибку?

Error: TypeError: Object has no method 'set' 
+0

У вашего объекта 'request.user' есть метод' set'? или вы просто пытаетесь сделать 'user.lastActive = new Date()' –

+0

Я не знаю. Я бы не использовал этот javascript вообще, если бы мне не пришлось использовать его для облачного кода. Я только наполовину уверен в том, что я делаю с JS. Так имеет ли он метод набора? Должно. В iOS вы просто выполняете '[[PFUser currentUser] setObject: [NSDate date] forKey: @" lastActive "];'. Как мне сделать то же самое с JS и не получить ошибок? –

ответ

1

Вы не можете передавать объекты разбора через облачные функции и ожидать, что они останутся элементами разбора. Лучшим решением было бы передать идентификатор объекта, затем создать указатель на объект пользователя и установить для него этот идентификатор. Затем обновите и сохраните:

var moment = require("moment"); 

Parse.Cloud.define("registerActivity", function(request, response) { 
    var user = new Parse.User() 
    user.id = request.userId; 
    user.set("lastActive", new Date()); 
    user.save().then(function (user) { 
     response.success(); 
    }, function (error) { 
     console.log(error); 
     response.error(error); 
    }); 
}); 
+0

Ха-ха, вы правы. Это то, к чему я прибегал неделю назад, и это сработало как шарм. Итак, вы правы, просто немного поздно. Но вы получаете смайлик, чтобы попробовать! –

+0

Спасибо! В любом случае, лучше иметь ответ, он может помочь другим с той же проблемой. –

+0

Не могли бы вы рассказать о том, почему мы не можем «ожидать, что они останутся синтаксическими объектами»? Я столкнулся с этой проблемой пару раз сейчас, но я не могу найти причин, почему это так, поэтому я не уверен, что мне нужно следить. –

Смежные вопросы