Javascript 如何将函数中的变量作为全局变量获取?

Javascript 如何将函数中的变量作为全局变量获取?,javascript,node.js,serverless-framework,alibaba-cloud,Javascript,Node.js,Serverless Framework,Alibaba Cloud,我收到http post消息,但无法在getRawBody函数之外获取正文 这是我的密码: getRawBody(req, function(err, body) { for (var key in req.queries) { var value = req.queries[key]; resp.setHeader(key, value); } string = params.body = body.toString(); string=q

我收到http post消息,但无法在
getRawBody
函数之外获取正文

这是我的密码:

getRawBody(req, function(err, body) {
    for (var key in req.queries) {
     var value = req.queries[key];
      resp.setHeader(key, value);
    }
    string = params.body = body.toString();
    string=querystring.parse(string);
    data=string.data;
    object=JSON.parse(data);
    console.log(object)     
    resp.send(JSON.stringify(object, null, '    '));
});

console.log(object);
第一个控制台日志输出正确的JSON,如

{id:'ddeklj'}

但是第二个控制台日志输出是
未定义的


我的问题是:如何从函数中获取variables对象?

在函数外部声明变量,然后在函数内部初始化它

let a;
Function getData(){
a = 20;
}
getData();
console.log(a);

看起来您正在使用阿里云函数Compute,并试图从http请求中获取主体的值

阿里云的函数将主体作为缓冲区发送进来,您所引用的示例代码有点混乱。 您可以通过如下操作从req中提取主体:

var getRawBody = require('raw-body');
module.exports.handler = async function (req, resp, context) {

  var getBody = await getRawBody(req);
  var bodyToString = getBody.toString();

  console.log(bodyToString );
}

您是在函数外部尝试init变量,还是在window.object中尝试init?回调,这就是您需要的。如果这是异步函数,则尝试使用Promise