云功能 - 无法处理请求

时间:2018-01-24 10:38:11

标签: node.js cors fetch google-cloud-functions

我正在尝试使用反向代理从第三方API(api.pubgtracker.com)获取数据,以便将CORS标头添加到请求中。

我的index.js看起来像这样:

const functions = require('firebase-functions');
const fetch = require('node-fetch')

exports.findPlayer = functions.https.onRequest((req, res) => {
 let nickname = req.query.nickname;
 let region = req.query.region;
 let mode = req.query.mode;

 let requestHeader = {
  method: "GET",
   headers: {
     'my-api-key': 'value-of-my-api-key'
   }
 }

 fetch(`https://cors-anywhere.herokuapp.com/https://api.pubgtracker.com/v2/profile/pc/${nickname}?region=${region}&mode=${mode}`, requestHeader)
   .then(response => response)
   .then(text => {
     res.send(text);
   });
});

问题是,通过转到我的云功能,我得到的只是"Error: Could not handle the request"并查看我看到的日志:

FetchError: request to https://cors-anywhere.herokuapp.com/https://api.pubgtracker.com/v2/profile/pc/VissGames?region=na&mode=solo-fpp failed, reason: getaddrinfo ENOTFOUND cors-anywhere.herokuapp.com cors-anywhere.herokuapp.com:443

这里有什么问题?在获取数据方面,我是一个纯粹的初学者,尽管我试图通过其他人提出的类似问题的解决方案来解决问题,但我无法看到错误。

1 个答案:

答案 0 :(得分:1)

我检查了https://cors-anywhere.herokuapp.com/是否有效。您的申请对ENOTFOUND抱怨cors-anywhere.herokuapp.com:443。这意味着它无法访问https://cors-anywhere.herokuapp.com/。这意味着它没有正确的网络连接或者problem with your DNS

如果您提供更多数据,可以提供更多帮助。 (例如:尝试访问其他网址,例如google.com)