Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 代理运行节点应用程序_Node.js_Reactjs - Fatal编程技术网

Node.js 代理运行节点应用程序

Node.js 代理运行节点应用程序,node.js,reactjs,Node.js,Reactjs,我刚刚创建了一个react node SQL应用程序,我希望它能在谷歌云上运行,而不是firebase 我的React应用程序在不同的端口上运行,我的节点应用程序在不同的端口上运行 我遵循这一点,在我的react app package.json中添加了这一行,但我没有发现,即按钮中的href仍然指向localhost:8081,但它没有工作 我的节点运行在端口8080上,在我的react应用程序的package.json中,我添加了代理:http://localhost:8080/ 在按钮中,

我刚刚创建了一个react node SQL应用程序,我希望它能在谷歌云上运行,而不是firebase

我的React应用程序在不同的端口上运行,我的节点应用程序在不同的端口上运行

我遵循这一点,在我的react app package.json中添加了这一行,但我没有发现,即按钮中的href仍然指向localhost:8081,但它没有工作

我的节点运行在端口8080上,在我的react应用程序的package.json中,我添加了代理:http://localhost:8080/ 在按钮中,当我执行href=/api/status时,它将转到运行react应用程序的localhost:8081

现在,是否可以在同一个项目下同时运行节点和react?或者我们需要为他们创建单独的项目

[更新:]我正在使用webpack,在我的webpack配置文件中,我添加了这个

devServer: {
    proxy: {
      '/': 'http://localhost:8080'
    }
  },
问题是,即使在我的react应用程序中,当它打开网页localhost:8081/时,在8081上运行的启动程序也会抛出一个错误,说无法获取页面

但如果我做了这样的事

  devServer: {
        proxy: {
          '/api': 'http://localhost:8080'
        }
      },

它会正常打开页面主页。现在,我的api和身份验证后的回调uRL没有配置为have prefix as api

基本上,当您从react应用程序(如axios或fetch)执行ajax请求时,它将使用proxy:作为后端url。但是,href不适用于代理。在这种情况下,您需要使用手动代理页面中记录的setupProxy.js手动配置代理

看看这个:

同样的错误在这里,它仍然路由到localhost:3000/api/auth/google,my CRA版本是2.1.3,看来http代理中间件是唯一的 工作方式。我必须手动配置代理

从:

如果代理选项对您来说不够灵活,您可以直接 访问Express app实例并连接您自己的代理 中间件

您可以将此功能与中的代理属性结合使用 json,但建议您整合所有逻辑 进入src/setupProxy.js


您添加了代理行吗?@AritraChakraborty我的节点运行在端口8080上,在我的react应用程序的package.json中,我添加了代理:http://localhost:8080/ 在按钮中,当我执行href=/api/status时,它将转到运行react应用程序的localhost:8081。非常感谢您的回答,刚刚更新了问题。您也能看一下吗。