Gatsby 错误 [HPM] 尝试代理请求时发生错误 / 从 localhost:8000 到 http://localhost:4000 (ECONNREFUSED)

Ave*_*nds 5 javascript proxy reactjs gatsby

使用此 Starter 开发 Gatsby 应用程序 https://github.com/the-road-to-react-with-firebase/react-gatsby-firebase-authentication

当我在运行 Gatsby Develop 后尝试访问我的页面时,我在更新我的节点包后不断收到此 HPM 错误。该项目编译成功,但随后我在浏览器中收到此错误,但没有任何显示。

尝试代理时出错:localhost:8000/

这在终端中:

错误 [HPM] 尝试代理请求时发生错误 / 从 localhost:8000 到http://localhost:4000 (ECONNREFUSED

一旦我从gatsby-config.js它工作的文件和浏览器中生成的页面中删除 它:

module.exports = {
    developMiddleware: app => {
        app.use(
            proxy({
                target: "http://localhost:4000",
            })
        )
    },
}
Run Code Online (Sandbox Code Playgroud)

但是,然后我在终端中收到此错误:

在“/404.html”中加载页面查询结果时出错。查询未运行且未找到缓存结果。页面未找到/404.html

我想知道为什么 Proxy 不工作以及上面的模块导出到底在做什么。我觉得我正在做的这种解决方法不好。任何帮助或建议都会很棒!!

Github 仓库:

该项目的 GitHub 存储库

Der*_*yen 11

该错误意味着 处没有任何运行http://localhost:4000。您的设置似乎存在一些问题:

首先,您的developMiddleware设置指向http://localhost:4000,但您的服务器 ( server.js) 默认运行在http://localhost:3000。也许您忘记启动服务器,或者在错误的端口启动它?

其次,如果我没看错的话,在你的代理中间件中,你正在代理到端口 4000 的每条路由?这将使盖茨比毫无用处。这是更好的代理设置的示例:

module.exports = {
  developMiddleware: app => {
    app.use(
      "/api",
      proxy({
        target: "http://localhost:4000",
      })
    )
  },
}
Run Code Online (Sandbox Code Playgroud)

这样,只有 的请求localhost:8000/api才会被代理到localhost:4000

希望能帮助到你!


小智 10

尝试将“localhost”替换为“127.0.0.1”