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" 变量成为全局变量,以便我可以在另一个获取请求中使用它?
提前致谢!
你的 Token
是 testFunc
上的局部变量
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/
我对 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" 变量成为全局变量,以便我可以在另一个获取请求中使用它?
提前致谢!
你的 Token
是 testFunc
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/