我有一个需要使用请求的项目,并且正在使用由节点运行的javascript。我无法将请求的主体存储到全局变量,因此我可以在其他函数中访问它。有没有办法将响应保存在全局变量中?感谢。
var request = require('request');
var globalBody = "";
var options = {
url: 'http://www.google.com/',
headers: {
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B350 Safari/8536.25'
}
}
request(options, function (error, response, body) {
if(error != null){
console.log('error:', error);
}
if(response.statusCode != 200){
console.log('statusCode:', response && response.statusCode);
}else{
globalBody = body;
}
});
console.log(globalBody)
最后一行" console.log(globalBody)"结果""但我希望它显示请求的正文。有没有办法做到这一点?
答案 0 :(得分:0)
使用window.localStorage存储全局
答案 1 :(得分:0)
在请求方法回调之前调用console.log(globalBody)。 globalBody值会在您尝试打印后更新。请尝试以下代码。
var request = require('request');
var globalBody = "";
var options = {
url: 'http://www.google.com/',
headers: {
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_4 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B350 Safari/8536.25'
}
};
request(options, function (error, response, body) {
if(error != null){
console.log('error:', error);
}
if(response.statusCode != 200){
console.log('statusCode:', response && response.statusCode);
}else{
globalBody = body;
console.log(globalBody);
}
});
在成功完成异步请求后,您需要调用其他函数以在其中使用全局变量。