1
我正在使用Parse Cloud Code從外部API檢索JSON數據。 JSON數據每2分鐘更新一次。如何使用雲代碼更新對象?
爲了實現這一點,我使用Cloud Job每2分鐘運行我的方法以保持數據的新鮮度。另外,我將整個JSON數據存儲到Parse。
當我第一次運行此代碼時,一切正常,但是......當代碼運行第二次,第三次或第四次而不是更新對象時,它會創建新的代碼。
如何在有數據時更新對象而不是創建新對象?
代碼:
Parse.Cloud.define("getCars", function(request, response) {
var promise = new Parse.Promise();
var Cars = Parse.Object.extend('Cars');
var query = new Parse.Query(Cars);
query.find().then(function (results){
Parse.Cloud.httpRequest({
method: 'GET',
url: urlLink,
success: function(httpResponse) {
var stations = new Array();
var data = JSON.parse(decodeURIComponent(escape(httpResponse.text))); // utf-8 decode
for (var i = 0; i < data.length; i++) {
var Cars = Parse.Object.extend('Cars'),
car = new Cars(),
content = data[i];
car.set('number', content.number);
car.set('name', content.name);
car.set('address', content.address);
car.set('position', content.position);
car.set('status', content.status);
cars.push(station);
};
Parse.Object.saveAll(cars, {
success: function(objects) {
promise.resolve();
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
promise.reject(error.message);
}
});
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
promise.reject(error.message);
}
});
});
return promise;
});
SOLUTION
我終於找到了解決辦法。也許這對其他面臨同樣問題的人會有用。
我添加了一個簡單的if語句來檢查查詢結果。如果查詢不返回數據,則創建新對象,否則:舊對象充滿新信息並保存到數據庫中。
station = (results == 0) ? new Stations() : results[i];