Python 如何让节点web客户端与Heroku上的RESTAPI对话?

Python 如何让节点web客户端与Heroku上的RESTAPI对话?,python,node.js,rest,heroku,Python,Node.js,Rest,Heroku,我有一个名为bidsell的节点web客户端和一个名为quote的小型Python Tornado REST API。Bidsell在触发时进行常规http get调用以报价。Quote duely以json格式返回随机价格信息。在本地工作-希望在线共享,但如何共享?赫罗库看起来很有前途。已经尝试在heroku上的同一个项目中部署bidsell和quote,每个都在自己的heroku web dyno或部署容器中运行。从日志“heroku log”中,两个都已正确安装,但只有一个似乎正在运行。例

我有一个名为bidsell的节点web客户端和一个名为quote的小型Python Tornado REST API。Bidsell在触发时进行常规http get调用以报价。Quote duely以json格式返回随机价格信息。在本地工作-希望在线共享,但如何共享?赫罗库看起来很有前途。已经尝试在heroku上的同一个项目中部署bidsell和quote,每个都在自己的heroku web dyno或部署容器中运行。从日志“heroku log”中,两个都已正确安装,但只有一个似乎正在运行。例如,我可以访问bidsell的首页url,但当触发bidsell获取报价信息时,找不到报价服务:-(我应该使用其他部署模式吗?

由于您的项目是两个独立的技术堆栈,最简单的方法是将它们部署为两个独立的Heroku应用程序。这为您提供了创建每个应用程序/服务所需的特定环境(语言、运行时、库)的简单方法

您可以为指向外部web地址的节点web客户端创建Heroku配置变量
QUOTE\u REST\u API

在您的节点客户端中使用
QUOTE\u REST\u API
配置变量可以提供一种简单的方法来更改QUOTE的地址,而无需更改代码

如果您在一个Heroku应用程序中运行两个独立的项目,则需要确保有两个
web:
条目用于
Procfile
启动单独的进程。只有标记为web的进程才会侦听web流量

如果使用heroku的免费层,您可能无法运行两个不同的web进程


好的,正如jr0cket所建议的,我创建了两个heroku项目——一个用于bidsell节点项目,另一个用于报价服务

除了bidsell节点项目源文件外,我还有一个包含以下内容的procfile:

web: npm start
web: python quoteService.py
以及package.json中的脚本部分,告知heroku如何启动应用程序:

 "scripts": {
   "start": "gulp serve"
 }
除了quoteService源python文件外,我还有一个procfile,其中包含以下内容:

web: npm start
web: python quoteService.py
以及一个requirements.txt文件,其中包含:

tornado==3.1.1
pyrestful==0.4.1
在bidsell应用程序中使用以下proxy.js作为中间件:

“严格使用”;
var proxyMiddleware=require('http-proxy-middleware');
变量选项={
目标:'http://quoteservce.herokuapp.com:80',
更改来源:正确
};
var proxy=proxyMiddleware('/quote',选项);
module.exports=函数(){
返回[代理];

}
感谢jr0cket,请参阅下面的实施详细信息:-)