How-to correctly pass params between Parse Cloud Code and the Client? (httpRequest Example)

Deadly 提交于 2019-12-13 01:06:22

问题


I've seen some examples, read the docs and read other question however I'm still not quite sure where to add/properly add params to be passed between Cloud Code and my Client side correctly.

For Instance, Here I am creating a new class from a httpRequest in my Cloud Code

In my Cloud Code main.js

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

   //runs when Parse.Cloud.run("POSTfromCloud") on the client side is called
   Parse.Cloud.httpRequest({
        method: "POST",
        headers: {
          "X-Parse-Application-Id": "[PARSE_APP_ID]",
          "X-Parse-REST-API-Key": "[PARSE_REST_ID]",
          "Content-Type": "application/json"
       },

       //adds a new class to my parse data
       url: "https://api.parse.com/1/classes/newPOSTfromCloudClass/",


       body: {
               "newPOSTfromCloudClass": {"key1":"value1","key2":"value2"}
             },

       success: function (httpResponse) {
                console.log(httpResponse.text);
                response.success(httpResponse);
       },
       error:function (httpResponse) {
                console.error('Request failed with response code ' + httpResponse.status);
                response.error(httpResponse.status);
       }

    });  //end of Parse.Cloud.httpRequest()

});

on my client side

Parse.Cloud.run('POSTfromCloud', {}, {
        success: function(result) {
          console.log("Posted a new Parse Class from Cloud Code Successfully! :"+ JSON.stringify(result))
        },
        error: function(error) {
        console.log("Oops! Couldn't POST from Cloud Code successfully..  :"+ error)
        }
      });
    }

My Result:

Bam! Got that working correctly. Now lets say I want to make my url one of many parameters passed how do I do this?


回答1:


As I was asking this I was also tinkering with some things because I coundn't get anything to pass correctly (or it would return as an empty value) so here I have and example on how I can pass parameters into this.

in my cloudcode main.js

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

         //HERE- make a new instance of 'myValue' for Cloudcode to handle
         var myValue = request.params.myValue;

       Parse.Cloud.httpRequest({
            method: "POST",
....[blah blah]

            //AND HERE- placed that here in my body, **note:** you shouldnt store tokens like this, ignore what I named it
            body: {
                   "newPOSTfromCloudClass": {"yourToken":myValue,"key2":"value2"}
                 },

client side

      var myvalue = "I'm The VALUE";
      Parse.Cloud.run('POSTfromCloud', {myValue: myvalue}, {

          success: function(result) {

Result: this should have passed the param correctly. Again ignore me using the title "yourToken", you shouldn't be storing tokens like that.

This took a while to put together, I hope this can help someone.



来源:https://stackoverflow.com/questions/33589322/how-to-correctly-pass-params-between-parse-cloud-code-and-the-client-httpreque

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!