如何将函数内部的变量作为全局变量获取?

时间:2019-03-26 09:31:49

标签: javascript node.js serverless-framework alibaba-cloud

我收到http帖子消息,但是无法在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' }

但是第二个控制台日志输出是undefined

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

2 个答案:

答案 0 :(得分:0)

您似乎正在使用AliCloud函数计算,并试图从http请求中获取正文的值。

AliCloud的函数将主体作为缓冲区发送,您所引用的示例代码有些混乱。 您可以通过以下操作从请求中提取主体:

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 );
}

答案 1 :(得分:-1)

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

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