【发布时间】:2018-12-09 17:03:00
【问题描述】:
我试图在一种方法中调用一个 rest API URL,然后使用该响应来形成对另一个 URL 的下一个查询,比如说 git 来查询一些信息。 在发布此之前,我已经看过很多示例,每个人都只是将响应打印到控制台或将其设置为服务器响应。
我尝试过使用 async/await,但它只会让整个事情变得非常缓慢。所以,我不太热衷于使用这种方法。
我正在执行回调,但我无法收集数据以实际循环它。 这是我的代码 sn-p:-
function initialize(path) {
// Setting URL and headers for request
var options = {
url: '',
headers: {
'Accept': '*/*',
'User-Agent' : 'something something',
'Authorization': 'Basic ' + new Buffer(process.env.username + ':' + process.env.password).toString('base64')
},
method: 'GET',
port:443
};
options.url = path;
callback = function(err,response){
var str= "";
response.on('data',function(chunk){
str+=chunk;
});
response.on('end',function(){
return JSON.parse(str);
});
}
http.request(options, callback).end();
}
我从这个方法中调用它。
function collectData1(userid){
var url = "example.com/users/user1";
var results = initialize(url);
console.log(results);
return results;
}
但结果始终未定义。
那么,我该怎么做呢?有什么建议吗?
【问题讨论】:
-
回调函数是否被触发了?
-
现在开始收到了。
events.js:136 throw er; // Unhandled 'error' event ^ Error: connect ECONNREFUSED 127.0.0.1:80 at Object._errnoException (util.js:1031:13) at _exceptionWithHostPort (util.js:1052:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1195:14) -
解决了端口问题。我想我正在寻找的是 http.request 或 request.get 的一个很好的例子。而且我没有找到一个体面的例子,结果不是直接返回到 html 或 html 模板,而不对数据本身做任何事情。
标签: javascript node.js http callback http-get