Nodejs post 请求变量范围问题

Nodejs post request variable scope issue

我对 Nodejs 有点陌生。 在下面的代码中,我从 API.

获取数据
request.post({ url:endpoint, form: requestParams }, function (err, response, body) {
    if (err) {
        console.log("Error = " + err);
    }
    else {
        let parsedBody = JSON.parse(body);
        if (parsedBody.error_description) {
            console.log("Error = " + parsedBody.error_description);
        }
        else {
            // testFunc(AccessToken);
            test = "Success!";
            testFunc(test);
        }
    }
});

function testFunc(success){
    Token = success;
    console.log(Token);
}

// this code gives the error "Token is not defined" \/
console.log(Token);

在 post 请求中我创建了变量 "test"。我希望能够将其用作全局变量,以便我可以在获取请求中使用它。

当我 console.log() "Token" 在 "testFunc" 中时,它会正确记录。 但是当我 console.log() 在函数之外时它会给出错误 Token is not defined.

如何让 "Token" 或 "test" 变量成为全局变量,以便我可以在另一个获取请求中使用它?

提前致谢!

你的 TokentestFunc

上的局部变量
function testFunc(success){
    Token = success;
    console.log(Token);
}

尝试将Token定义为全局变量 您可以在所有 import require(...) 或 request.post

之后放置
let Token; //this is global declared variable

还有你的console.log不能和你的代码一样

作为你的问题I want to be able to use this as a global variable so i can use it in a get request.

所以你需要把你的 console.log 放在 request.get

里面

类似

request.get('xxxxxx', , function(err) {
    console.log("Token is " , Token);
});


你的 request.post 是 运行 异步的 你可以使用请求承诺库

const request = require("request-promise"); 

并更改为

var result = await request(options);

或阅读本文了解更多知识 https://blog.risingstack.com/mastering-async-await-in-nodejs/