node.js - 将 React/Node/Express 应用程序上传到 Heroku 后获取 "Failed to load resource: net::ERR_CONNECTION_REFUSED"

标签 node.js reactjs express heroku deployment

如标题所述,我的网站收到“加载资源失败:net::ERR_CONNECTION_REFUSED”错误。

还有“TypeError:获取失败”和“未经检查的 runtime.lastError:消息端口在收到响应之前关闭。”由于某种原因在控制台日志中。

此外,在 Heroku 的构建日志中,它也显示“NPM_CONFIG_LOGLEVEL=error”。

据我了解,当端口未监听任何内容时会发生这种情况。但我不确定这是怎么回事或为什么会这样。

我尝试使用 process.env.NODE 而不是 env.PORT 来切换端口(将端口从 5000 更改为 3000 等)。没有变化。

全部基于此 Pusher 新闻提要应用教程。这是我为 server.js 类编写的一些代码(假设这就是我所需要的)。

app.get('/live', (req, res) => {
    const topic = 'ipo';
    fetchNews(topic, 1)
        .then(response => {
            res.json(response.articles);
            updateFeed(topic);
        })
        .catch(error => console.log(error));
});

app.set('port', process.env.PORT || 5000);
const server = app.listen(app.get('port'), () => {
    console.log('Express running -> PORT ${server.address().port}');
});

还有一小部分我的app.js代码

componentDidMount() {
    fetch('http://localhost:5000/live')
      .then(response => response.json())
      .then(articles => {
        this.setState({
          newsItems: [...this.state.newsItems, ...articles],
        });
      }).catch(error => console.log(error));

我不确定到底发生了什么。

最佳答案

问题在于您获取 http://localhost:5000/live 的方式,而 Heroku 不是您的本地主机,它怎么知道本地主机是什么?

关于node.js - 将 React/Node/Express 应用程序上传到 Heroku 后获取 "Failed to load resource: net::ERR_CONNECTION_REFUSED",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58070763/

相关文章:

node.js - 如何忽略 Node 请求中的SSL证书验证?

javascript - 在 ReactJs 应用程序中处理 onChange

node.js - 如何保存数组?

reactjs - react 日期选择器 - 无效的时间值

node.js - 如何在 React/Node 中创建 'Load More' 功能而不重新渲染整个组件?

express - etag 如何在 expressjs 中工作

javascript - Node.js : Make a response on the same page (update the page)

python - 在 Windows 上使用 IPython Notebook 时出现 500 服务器错误

node.js - API 4.0 现已弃用位置快速回复。请参阅我们的开发者文档以获取更多信息

Node.js 使用用户名和密码从 URL 下载文件?