JavaScript, как вернуть значение, которое я вижу только в консоли?

Я полностью осознаю, что это, вероятно, рассматривается в другом потоке, однако я новичок в JavaScript и Node и не совсем уверен, что я ищу.

Я работаю со слоем презентации под названием Domo и пытаюсь получить доступ к их API для экспорта данных. Часть доступа к их данным - установить токен для подключения.

Я успешно смог сделать вызов и консоль записать значение, но я не могу передать значение объекту, такому как массив. Я считаю, что это анонимная функция, и я искал ее, пытаясь найти способ ее использования. Мое исследование было все от замыканий, обратных вызовов, let, return и немедленного вызова функций, но я что-то здесь упускаю. Может кто-то указать мне верное направление?

**Here is the code:**
var http = require("https");

var tokenoptions = {
"method": "GET",
  "hostname": "api.domo.com",
  "port": null,
  "path": "/oauth/token?grant_type=client_credentials&scope=data%20user",
  "headers": {
              "Accept":"application/json",
              "Authorization": "Basic MyClientAndSecretGoesHere"
              }
}

var req = http.request(tokenoptions, function (res) {
  var chunks = [];
  var token = [];

 res.on("data", function (chunk) {
                    chunks.push(chunk);

                                  });

 res.on("end", function () {
                body = Buffer.concat(chunks);
                 console.log(body.toString());
                           });

});
req.end();  

**End Code**

Console.log(body.toString()) - это значение, которое я хочу, но как мне назначить его массиву или объекту? Это анонимная функция?

Буду очень признателен за помощь и заранее извинюсь, если это повторяющийся пост. С возрастом этого сайта, я не вижу, как ни один новый пост не может быть.

1 ответ

Если я правильно понял, вы бы хотели, чтобы данные были объектом Javascript, который будет использоваться вне обратного вызова. Я прочитал документацию по Domo API и надеюсь, что это сработает для вас:

var http = require("https");

var tokenoptions = {
    "method": "GET",
    "hostname": "api.domo.com",
    "port": null,
    "path": "/oauth/token?grant_type=client_credentials&scope=data%20user",
    "headers": {
        "Accept":"application/json",
        "Authorization": "Basic MyClientAndSecretGoesHere"
    }
}

var req = http.request(tokenoptions, function(res) {
    var chunks = [];
    var token = [];

    res.on("data", function(chunk) {
        chunks.push(chunk);
    });

    res.on("end", function() {
        body = Buffer.concat(chunks);
        nextAction(JSON.parse(body.toString()));
    });
});

req.end();

function nextAction(obj) {
    console.log(obj);
}
Другие вопросы по тегам