Как получить переменные внутри функции как глобальные переменные? - PullRequest
0 голосов
/ 26 марта 2019

Я получаю сообщение 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 голосов
/ 02 мая 2019

Похоже, что вы используете AliCloud Function Compute и пытаетесь получить значение тела из запроса 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 );
}
0 голосов
/ 26 марта 2019

Объявите переменную вне функции, а затем инициализируйте ее внутри функции

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