使用节点请求模块将请求体传递给调用函数

时间:2016-07-23 14:15:52

标签: node.js

我写了一个小模块,使用'请求'模块。我想从另一个脚本中调用它,并使用Get on the calling函数的结果,如下所示:

var request = require('request');

function SendGet(uri) {

var outer_body  = "test";
request(uri, function(error, response, body) {
                      console.log(body);
                      outer_body = body;                    
                    });

console.log(outer_body);
return outer_body;
}
exports.GetRequest = SendGet;

然后我像这样使用它:

var MyReq = require('./reqtest');
var uri = "http://api.myhost.com";
var result = MyReq.GetRequest(uri);
console.log("My result is:",result);

当我运行它时,我在控制台中看到使用GetRequest时响应的主体,但返回的变量仍然具有用于初始化它的值:

c:\node messages.js
test
My result is: test
<full body here>
c:\

如何将身体传回呼叫功能? 谢谢

1 个答案:

答案 0 :(得分:0)

试试这个

var request = require('request');

function SendGet(uri) {

var outer_body = "test";
outer_body = request(uri, function(error, response, body) {
                      console.log(body);
                      return body;                    
                  });

    console.log(outer_body);
    return outer_body;
}
exports.GetRequest = SendGet;

在这里,您将回调的结果返回给变量outer_body