Javascript node.js项目在本地计算机上工作,在Heroku上部署时会出现问题
我有一个node.js+Express项目,我一直在工作,当我在我的机器上运行它时,它一直在工作。我已经为我的Express API设置了端口4200,带有Javascript node.js项目在本地计算机上工作,在Heroku上部署时会出现问题,javascript,node.js,heroku,web-deployment,web-hosting,Javascript,Node.js,Heroku,Web Deployment,Web Hosting,我有一个node.js+Express项目,我一直在工作,当我在我的机器上运行它时,它一直在工作。我已经为我的Express API设置了端口4200,带有 var port = 4200; 在app.js中 我在React中使用axios访问API: axios.get('https://localhost:4200/posts ... etc 当我在我的机器上运行它时,这一切都会起作用,但当我使用Heroku部署它时,会出现以下错误: 获取网络::错误连接被拒绝 错误:网络错误 在cre
var port = 4200;
在app.js中
我在React中使用axios访问API:
axios.get('https://localhost:4200/posts ... etc
当我在我的机器上运行它时,这一切都会起作用,但当我使用Heroku部署它时,会出现以下错误:
获取网络::错误连接被拒绝
错误:网络错误
在createError(createError.js:16)
位于XMLHttpRequest.handleError(xhr.js:87)
如何解决此问题?我想强调两点: 1) 引用 web进程类型中的命令必须绑定到端口环境变量中指定的端口号。如果没有,dyno将不会启动 所以你应该做的是
var port = process.env.PORT || 4200;
现在,在本地系统上工作时,将使用4200端口,在heroku上部署时,将使用环境变量指定的端口
2)
根据您的问题,您说您正在使用axios.get('https://localhost:4200/posts …etc
。部署应用程序时,应如何使用本地主机
在Heroku上创建应用程序时,将localhost更改为您获得的任何域。我想您应该尝试更改为您获得的像XXXXX.herokuapp.com这样的Heroku域。我尝试用XXXXX.herokuapp.com替换localhost:4200的每一次出现,但我现在尝试访问API时都找不到404。