我有一个 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 //
})
}
我正在使用一个名为“request”的 npm 包来制作 GET,因为我无法让 https.get() 工作。此 Feedly API 调用需要 URL、我的用户 ID 和在标头中传递的访问令牌。
我一直在阅读,显然我应该使用回调或承诺,但我无法让它们中的任何一个工作。使用 http.get(),我可以利用 http.get().then(yada yada) 的 promise,它适用于我在其他地方进行的 forecast.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)
我在 var url 中为 https.get 调用尝试了很多东西。我尝试了带引号和不带引号,我只尝试了 auth: Bearer token 因为它与请求模块一起工作,但无法让它工作。
这个问题的解决方案是:
- 使用现有请求模块代码从 feed-service 回调到控制器。
- 找出正确的方法来形成 https.get 请求的 url,然后我可以利用它的 promise 函数。