Я просто пытаюсь отправить запрос на получение API. Я получаю ответ 200, но ни одна из функций обратного вызова, похоже, не происходит, включая конец. Вот соответствующий раздел, у меня также есть остальная часть экспресс-сервера, и сервер работает.Функции обратного вызова из https-ответа не запускаются в nodejs
var https = require("https");
https.get("https://tfe-opendata.com/api/v1/stops", function(res){
console.log("Response: ", res.statusCode);
console.log("Res: " + res);
}).on('data', function(data) {
console.log('blah');
console.log("data: " + data);
process.stdout.write(data);
}).on('error', function(error) {
console.error('Error ' + error);
}).on('end', function(){
console.log("End.");
});
Он должен просто вернуть JSON, и вы можете увидеть данные и URL действительны, если вы идете в address. Ни один из отпечатков после первого обратного вызова не происходит.
Edit: Это работает, если я использую метод полной https.request
var options = {
host: 'tfe-opendata.com',
path: '/api/v1/stops',
method: 'GET'
}
var httpreq = https.request(options, function(response) {
response.on('data', function(chunk) {
console.log("data " + chunk);
});
});
httpreq.on('error', function(e) {
console.log('error: ' + e);
});
httpreq.end();
Я до сих пор не знаю, почему оригинал не работает.
Я не совсем уверен, если вы можете использовать путь в формате domin '('https://tfe-opendata.com/api/v1/stops')', возможно, вам нужно использовать абсолютный путь, например '('/ api/v1/stops') ' –
Вы можете видеть, что они делают это в документации http://nodejs.org/api/https.html#https_https_get_options_callback – michaelAdam