2

node.js サーバーで request モジュールを使用すると、wait と return などの問題が発生します。

requestController で「responseObject」値を受け取りたいです。

この問題を解決するために、最善の方法で検索しましたが、まだ見つかりません。

この問題をどのように解決できますか?

少し早いですがお礼を!!:)

================================================== =======================

var requestToServer = require('request');

function getRequest(requestObject) {

    var urlInformation = requestObject['urlInformation'];
    var headerInformation = requestObject['headerInformation'];

    var jsonObject  = new Object( );

    // Creating the dynamic body set
    for(var i = 0; i < headerInformation.length; i++)
        jsonObject[headerInformation[i]['headerName']] = headerInformation[i]['headerValue'];

    requestToServer({
        url : urlInformation,
        method : 'GET',
        headers : jsonObject
    }, function(error, response ,body) {
        // todo response controlling
        var responseObject = response.headers;
        responseObject.body = body;
    });
}

// Controlling the submitted request
exports.requestController = function(requestObject) {
    var method = requestObject['methodInformation'];
    var resultObject = null;

    // Selecting the method
    if(method == "GET")
        resultObject = getRequest(requestObject);
    else if(method =="POST")
        resultObject = postRequest(requestObject);
    else if(method == "PUT")
        resultObject = putRequest(requestObject);
    else if(method == "DELETE")
        resultObject = deleteRequest(requestObject);

    console.log(JSON.stringify(resultObject));
}
4

1 に答える 1

5

以下の方法でご利用いただけますcallbacks

function getRequest(requestObject, callback) {
    // some code
    requestToServer({
       url : urlInformation,
       method : 'GET',
       headers : jsonObject
    }, function(error, response ,body) {
       // todo response controlling
       var responseObject = response.headers;
       responseObject.body = body;
       callback(responseObject);
    }); 
}

// Controlling the submitted request
exports.requestController = function(requestObject) {
   var method = requestObject['methodInformation'];

   // Selecting the method
   if(method == "GET")
      getRequest(requestObject, function(resultObject){
          console.log(JSON.stringify(resultObject));
      });

   //some code
}

それが役に立てば幸い。

于 2016-06-12T07:13:35.193 に答える