私はNodeJS関数呼び出しを初めて利用しています。数時間前から画面上で頭を撫でています。AWS Lambda - Nodejs関数はデータを返さない
私が持っているのは、単一のID番号を持つJSONオブジェクトを受け取るAWSラムダ関数です。このID番号は渡され、最終的にはmyJidとしてgetJson関数に送られます。この部分は動作しており、NPMのREQUESTモジュールを使用しており、Webサービスに到達してデータを取り戻します。私はconsole.log(body)のときに私は必要なJSONオブジェクトを見ている。
問題は、データを戻して戻すことができないため、JSONを別の場所で使用できることです。私はCALLBACK(BODY)、RETURN(BODY)を試みましたが、使用するデータはすべて私に返されません。
私は関数内でコールバックを使用しようとしましたが、その関数を呼び出す必要がありますが、その関数でも何らかの理由で使用するためのデータが返されません。 JSONを変数にコーディングして返しましたが、それはうまくいきました...しかし、REQUESTを使用すると、戻ってきてくれません。
私はこれが何か簡単だと思っています...あまり前もってありがとう!
Calling the function:
query_result.success = 1;
query_result.message = "Applicant Data Found";
query_result.data = getJson(201609260000003, returningData);
function getJson(myid, callback){
request('http://server.com/service1.asmx/Get_Status_By_External_Id?externalId=' + myid + '',
function (error, response, body) {
console.log(body); // I see the JSON results in the console!!!
callback (body); // Nothing is returned.
}
);
}
function returningData(data){
console.log("ReturningData Function Being Called!");
var body = '{"Error":null,"Message":null,"Success":true,"ExternalId":"201609260000003","SentTimeStamp":"11/22/2016 1:07:36 PM","RespTimeStamp":"11/22/2016 1:08:32 PM","RespTot":"SRE"}';
return JSON.parse(body);
}
本当にありがとうございました。私はそれをどのようにすることができるかの例を教えてください。ここでもまた、JSにとって非常に新しいです。 – Josh
@Joshは構造を示すコードをいくつか追加しました。 getJson()は実際にreturningData()であるcallback2を呼び出し、lambda関数への引数として提供されるコールバック関数を呼び出します。 – Digitalkapitaen
助けてくれてありがとう!私にとっての鍵は、ここでJSの非同期性を理解することでした。 – Josh