У меня есть файл controller.js, который я пытаюсь получить из моего файла feed-service.js. FEEDLY_USER_ID и FEEDLY_ACCESS_TOKEN доступны и определены в отдельном файле config.js.
контроллер.js:
$scope.feedlyGlobalAll = FeedService.getGlobalAll();
фид-service.js:
var request = require('request');
var globalOptions = {
url: 'https://cloud.feedly.com/v3/streams/contents?streamId=user/' + FEEDLY_USER_ID + '/category/global.all',
auth: {
'bearer': FEEDLY_ACCESS_TOKEN
}
};
service.getGlobalAll = function(){
request.get(globalOptions, function(error, response, body){
if(!error && response.statusCode == 200){
service.globalAll = JSON.parse(body);
return service.globalAll;
}
// error code here //
})
}
Я использую пакет npm под названием «запрос», чтобы сделать GET, потому что я не мог заставить работать https.get(). Для этого вызова API Feedly требуется URL-адрес, мой идентификатор пользователя и токен доступа, переданные в заголовке.
Я читал, и, видимо, я должен использовать обратные вызовы или обещания, но я не могу заставить их работать. С помощью http.get() я могу использовать промисы с помощью http.get().then(yada yada), которые работают для вызова прогноза.io, который я делаю в другом месте. Модуль запроса, по-видимому, не разрешает .then(). Обычно я сталкиваюсь с TypeError, а .then() не является функцией.
Когда я пытался выполнить https.get(), вот код, который я использовал. Я никогда не был в состоянии получить успешный ответ.
var url = {
url: 'https://cloud.feedly.com/v3/streams/contents?streamId=user/' + FEEDLY_USER_ID + '/category/global.all',
'headers': {
'Authorization': 'Bearer ' + FEEDLY_ACCESS_TOKEN
}
};
https = require('https');
https.get(url).then(yada yada)
Я пробовал множество вещей в URL-адресе var для вызова https.get. Я пробовал с кавычками и без них, я пробовал только auth: токен на предъявителя, поскольку он работает с модулем запроса, но не смог заставить его работать.
Решение этой проблемы будет либо:
- Обратный вызов от фид-сервиса к контроллеру с использованием существующего кода модуля запроса.
- Выяснение правильного способа формирования URL-адреса для запроса https.get, а затем я могу использовать его функцию обещания.