我正在编程一个Node.js应用程序,我需要在Heroku上部署它。在其中,我得到了3个API,其中一个需要一个API键从rapidapi。在我的本地目录中,一切工作正常。但是,当我把我的应用程序上传到heroku时,需要API密钥的应用程序就不再起作用了。
下面是我的代码:
null
//where i am accessing my api
fetch(`/geodb?namePrefix=${city}`).then(response => { //fetching country data to city name
response.json().then(response => {
response.json = response;
var citylenght = Object.keys(response.data).length;
}
//and here is the actual fetch request:
app.get('/geodb', async (request, response) => {
let cityname = request.query.namePrefix; //getting parameter for the url
let api_response = await fetch(`https://wft-geo-db.p.rapidapi.com/v1/geo/cities?namePrefix=${cityname}`, {
"method": "GET",
"headers": {
"x-rapidapi-host": "wft-geo-db.p.rapidapi.com",
"x-rapidapi-key": process.env.API_KEY //loading api key from .env file
}
});
let json = await api_response.json();
response.json(json);
});
null
在我的本地主机上,一切都很正常,但是当我在heroku上访问我的应用程序时,浏览器控制台显示如下:
> Uncaught (in promise) TypeError: Cannot convert undefined or null to
> object
> at Function.keys (<anonymous>)
> at api.js:13 (anonymous) @ api.js:13 Promise.then (async) (anonymous) @ api.js:11 Promise.then (async) lookup @ api.js:9
> receiveData @ listeners.js:7 onclick @ (index):43 (anonymous) @
> (index):187
这告诉我,应用程序无法访问api数据,这就是为什么答案是未定义的。heroku日志也没有显示任何错误。
顺便说一下:当我只使用其他两个不需要任何api键的api时,也没有定义任何头,那么一切都很好。
如果你能帮我,我会很高兴的,因为我需要尽快完成它。
谢啦!
在Heroku上,您可以在应用程序配置中设置环境变量,而不是通过上传.env
。如果使用CLI工具,则可以使用web界面或heroku config
命令。
使键“api_key”和值从.env
文件中获得任何值(可能不部署该文件,它们通常保存在本地,不包括在源代码管理中,也不部署到宿主平台。不过,这部分只是建议!)
问题内容: 我正在尝试使用Elastic Search引擎在mongodb数据库上进行全文搜索,但是遇到一个问题:无论我提供什么搜索字词(或者如果我使用query1或query2),引擎始终会返回相同的结果。我认为问题出在我提出请求的方式上,但我不知道如何解决。 这是代码: 问题答案: 该参数不适用于正在发送的数据。如果要尝试将数据发送到服务器,则应特别使用data参数。如果您尝试发送查询参数,则
我有一个对soap Web服务的请求,该服务在SoapUi中运行良好。我想在python脚本中调用此Web服务。 我尝试了一些模块:zeep,泡沫,...但是我总是有一个SSL错误。 以下是信息: https://37.71XXXXXXACONYX?wsdl 基本认证:用户名密码 身份验证类型:抢占式 我在SoapUi中提供了xml。 有人有什么想法吗? 谢谢!! 我试过:
问题内容: 我在Heroku上有一个Node.js应用程序。我最近切换了一个较长的查询以使用SSE(EventSource)。尽管它在我的机器上运行良好且速度很快,但我不断收到GET请求。H15说明说我每次交易都超过了55秒。但是我的整个查询时间不会超过4-5秒。 此外,在阅读了说明之后,我将在查询开始后立即返回我的第一个字节(只是一个数字),然后再开始进行繁重的工作-仍然不起作用。 我的问题是:
我有一个Java的web应用程序,我正在将一些请求从jQuery发送到配置有JAX-RS的Rest API,在我的本地机器上它运行得很好,但是在Heroku上部署它之后,它给了我一个错误 特别是,我正在从jQuery向这个endpoint发送一个POST请求。 我也为我的应用程序配置了CORS过滤器,这使得它可以在我的本地机器上工作(在这样做之前,应用程序在我的本地机器上给了我同样的错误)。总之,
我正在使用Laravel 5.6--Jquery Ajax 我将该操作的返回作为带有数据的部分 我将主标记的内容替换为部分标记 除了当结果计数大于10(分页的断点)时,其他一切都正常工作。 我使用来显示控件
我正试图在按下某个按钮时弹出一个警报对话框。我首先使用了Android Developer的示例代码而不是'这不起作用,所以我根据在这个站点上发现的情况进行了更改,但是现在我的程序在按下按钮后被迫停止。 就你的知识而言,这是在第二个不同于主要的活动中完成的。不确定这是否重要.... ‘ 碰撞日志:“03-25 19:34:24.373:E/AndroidRuntime(18828):致命异常:ma
2,错误{org.apache.directory.server.LDAP.ldapserver}-ERR_171无法将LDAP服务(10,389)绑定到服务注册表。java.net.BindException:已在使用的地址 请帮忙谢谢 --------提示------------------- JAVA_HOME环境变量设置为/opt/java CARBON_HOME环境变量设置为/mnt/1
在Spring框架中,我在使用AOP时遇到了一个奇怪的问题。我有以下简单的bean类的一个问候: 下面是spring配置: AOP建议方法: 测试等级: 输出: 问题: 当我使用getter作为切入点时,为什么两个建议(之前和之后)都被打印出来。建议工作正确时,我使用点切入点displayGreting()方法??