从 node.js 中的 request.end() 检索数据
Retrieve data from request.end() in node.js
我想将 unirest 请求的结果用于 Node.js 中的另一个文件,但我无法从 request.end 中获取数据( )函数到外部变量。
代码如下:
request.end(function (response) {
if(response.error) {
console.log("AUTHENTICATION ERROR: ", response.error);
} else {
callback(null, response.body);
}
console.log("AUTHENTICATION BODY: ", response.body);
});
var result = authentication(function(error, response) {
var authenticationToken = response.access_token;
if(authenticationToken != null) {
console.log("Token: ", authenticationToken);
return authenticationToken;
}
});
我想获取 authenticationToken 值以使用 module.exports
导出到另一个模块。
我正在使用 unirest http 库。
它是一个回调函数,被视为参数,而不是 returns 值的函数。
不过你可以这样做:
var result;
authentication(function(error, response) {
var authenticationToken = response.access_token;
if(authenticationToken != null) {
console.log("Token: ", authenticationToken);
module.exports.result = authenticationToken; // setting value of result, instead of passing it back
}
});
您现在可以使用 result
变量了。
但要小心,它是一个异步函数,因此您可能无法立即使用它,直到在回调函数中为其分配一个值。
要导出结果值:
module.exports.result = null;
例子
m1.js
setTimeout(() => {
module.exports.result = 0;
}, 0);
module.exports.result = null;
app.js
const m1 = require('./m1.js');
console.log(JSON.stringify(m1));
setTimeout(() => {
console.log(JSON.stringify(m1));
}, 10);
输出
{"result":null}
{"result":0}
因此您可以继续使用变量 result
,一旦变量被分配,它将包含值。
我想将 unirest 请求的结果用于 Node.js 中的另一个文件,但我无法从 request.end 中获取数据( )函数到外部变量。
代码如下:
request.end(function (response) {
if(response.error) {
console.log("AUTHENTICATION ERROR: ", response.error);
} else {
callback(null, response.body);
}
console.log("AUTHENTICATION BODY: ", response.body);
});
var result = authentication(function(error, response) {
var authenticationToken = response.access_token;
if(authenticationToken != null) {
console.log("Token: ", authenticationToken);
return authenticationToken;
}
});
我想获取 authenticationToken 值以使用 module.exports
导出到另一个模块。
我正在使用 unirest http 库。
它是一个回调函数,被视为参数,而不是 returns 值的函数。
不过你可以这样做:
var result;
authentication(function(error, response) {
var authenticationToken = response.access_token;
if(authenticationToken != null) {
console.log("Token: ", authenticationToken);
module.exports.result = authenticationToken; // setting value of result, instead of passing it back
}
});
您现在可以使用 result
变量了。
但要小心,它是一个异步函数,因此您可能无法立即使用它,直到在回调函数中为其分配一个值。
要导出结果值:
module.exports.result = null;
例子
m1.js
setTimeout(() => {
module.exports.result = 0;
}, 0);
module.exports.result = null;
app.js
const m1 = require('./m1.js');
console.log(JSON.stringify(m1));
setTimeout(() => {
console.log(JSON.stringify(m1));
}, 10);
输出
{"result":null}
{"result":0}
因此您可以继续使用变量 result
,一旦变量被分配,它将包含值。