JavaScript,如何返回一个我只能在控制台中看到的值?

时间:2017-11-05 21:51:56

标签: javascript domo

我完全清楚这可能包含在另一个主题中,但我是JavaScript和Node的新手,并不完全确定我在寻找什么。

我正在使用名为Domo的表示层并尝试访问其API以导出数据。访问其数据的一部分是建立要连接的令牌。

我已经成功地使调用和控制台记录了值,但是我无法将值推送到像Array这样的对象。我相信这是一个匿名函数,并一直在寻找一种方法来使用它。我的研究一直是闭包,回调,让,返回和立即调用的功能,但我在这里遗漏了一些东西。谁能指出我正确的方向?

**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 个答案:

答案 0 :(得分:0)

如果我理解正确,您会希望数据是在回调之外使用的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);
}