2016-03-30 23 views
1
bir "standart" işlevini kullanırken bir kullanıcı sorgulamak için bulut kodu gelmediğinden

...Ayrıştırma bulut kodu - I (aşağıda) işlevini tanımlarsanız, "normal" fonksiyonunda sorgu kullanıcı sorunu

, çalışıyor ince ... Bu versiyonda

Parse.Cloud.define("findUser1", function(request, response){ 
    Parse.Cloud.useMasterKey(); 
    var query = new Parse.Query(Parse.User); 
    query.equalTo("objectId", "2FSYI1hoJ8"); // "2FSYI1hoJ8" is the objectId of the User I am looking for 
    query.first({ 
     success: function(user){ 
     response.success(user); 
    }, 
    error: function(error) { 
     console.error(error); 
     response.error("An error occured while lookup the users objectid"); 
    } 
    }); 
}); 

, işlev adı verilecek, ancak sorgu içinde ...

function findThisUser(theObject){ 
    console.log("findThisUser has fired... " + theObject); //confirms "theObject" has been passed in 
    Parse.Cloud.useMasterKey(); 
    var query = new Parse.Query(Parse.User); 
    query.equalTo("objectId", "2FSYI1hoJ8"); // "2FSYI1hoJ8" is the value of "theObject", just hard coded for testing 
    query.first({ 
     success: function(users){ 
     console.log("the user is... " + users); 
     // do needed functionality here 
    }, 
     error: function(error) { 
     console.error(error); 
    } 
    }); 
}; 

Bulut kod küresel değişkenleri izin ve vermez görmüyorum olmaz bir değişkene nasıl bir "geçirir" ed "başka birinden işlev. Bu, döndürülen kullanıcı üzerinde gerekli görevleri çalıştırmak için bir dış işlev çağrılması gerektiği için çok önemlidir. (Bu başka bir yerde olur ve diğer her şeyden sonra gerçekleşmesi gerekir. Bu onay ve diğer işlevler tarafından da kullanılması gerekiyordu) Bugüne kadar bulunan tüm potansiyel bilgiler ve sunucu tarafında javascript sahip olduğum tek deneyim yardımcı olmadı diğer bulut kodlarından bir araya getirdiğim şeydir ...

Neler eksik olduğum hakkında bir fikriniz var mı?

cevap

1

Bu bağlantı yardımcı olabilir, dün ve kod biraz hareket ettikten sonra benzer bir sorun yaşadım ve response.success (user); Benim fonksiyonumda iyi çalıştı.

Parse Cloud Code retrieving a user with objectId

değil tam sorunu - ama bu yardımcı olabilir.

İşte şimdi kullanımı kodudur:

Parse.Cloud.define("getUserById", function (request, response) { 
//Example where an objectId is passed to a cloud function. 
var id = request.params.objectId; 

Parse.Cloud.useMasterKey(); 
var query = new Parse.Query(Parse.User); 
query.equalTo("ObjectId", id); 

query.first(
{ 
    success: function(res) { 
     response.success(res); 
    }, 
    error: function(err) { 
     response.error(err); 
    } 
}); 

});

+0

Bu, ihtiyacım olan kodun bir parçası olarak ortaya çıktı ... ("Normal" işlevine gerek duymadan sona erdi) Ayrıca, tanımlı işlevi parametreleriyle çağırmam gerekiyordu. Bu ihtiyaç duyduğum diğer bölümdü -> 'Parse.Cloud.run ('thisFunction', {" objectId ": objectId});' Bu, sorguya bakılması gereken objectId'yi iletmeme izin verdi. Teşekkür ederim. – Lamar