【问题标题】:how to setup proxy table in create-react-app如何在 create-react-app 中设置代理表
【发布时间】:2018-10-08 21:49:52
【问题描述】:

我有一个 API 后端服务器,前端由 create-react-app 创建的另一台服务器提供服务,我需要将一组特定的请求从 CRA 服务器代理到 API 服务器。

我正在尝试使用http-proxy-middleware。对于只有一个规则的简单用例,它工作得很好。但是我没有运气同时使用多个规则。

我一直在关注文档并提出了类似的内容(setupProxy.js 的内容)。

const proxy = require('http-proxy-middleware');

const proxyTable = {
    '/auth/google': 'http://localhost:5000/',
    '/api/*': 'http://localhost:5000'
};

const options = {
    target: 'http://localhost:3000',
    router: proxyTable
};

module.exports = function(app) {
    app.use(proxy(options));
};

首先,我不知道options 中的target 属性,但根据文档,它为proxyTable 中未指定的每个请求设置目标url。好吧,我只想让我的所有其他请求保持不变,所以我将值设置为与运行 CRA 的地址相同(不确定这是否是正确的方法,文档对此不清楚)。

我遇到的问题是,如果我尝试将请求路由回去,则会出现此错误。

Error occurred while trying to proxy request / from localhost:3000 to http://localhost:3000 (EADDRNOTAVAIL)

我不确定我是否理解此错误。如果我更改 target 的值,则会出现一些与此类似的其他错误消息,并且注意到似乎有效。

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript reactjs create-react-app http-proxy-middleware


    【解决方案1】:

    好的,我通过多次使用代理中间件找到了解决办法——每个规则一个。

    对于任何有兴趣的人,

    const proxy = require('http-proxy-middleware');
    
    module.exports = function(app) {
        app.use(proxy('/api/*', { target: 'http://localhost:5000' }));
        app.use(proxy('/auth/google', { target: 'http://localhost:5000' }));
    };

    但是代理表仍然无法正常工作,所以任何知道如何使其工作的人,请分享。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-07
      • 2018-09-19
      • 2019-06-10
      • 2020-10-08
      • 2019-10-29
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      相关资源
      最近更新 更多