代码之家  ›  专栏  ›  技术社区  ›  mobiman

ReactJS/Next.js:CRA Proxy不能与Next.js一起工作(尝试将API请求路由到Express服务器)

  •  0
  • mobiman  · 技术社区  · 6 年前

    我目前正在升级一个vanilla React应用程序以使用Next.js(7.0.0版)。该应用程序最初是用createreact应用程序构建的,并使用CRA服务器内置的代理。

    我有一个快速服务器在运行 端口5000 . 在添加Next.js之前,我一直在使用 代理对象 包.json

    API请求:

    const res = await axios.get('/api/request')
    

    "proxy": {
      "/api/*": {
        "target": "http://localhost:5000"
      }
    }
    

    这是一个很好的工作,但对于Next.js,我现在得到一个错误:

    GET http://localhost:3000/api/request 404 (Not Found)
    

    ^这应该是指向locahost:5000 (我的服务器)

    有人知道我如何将API请求从React/Next.js客户端路由到运行在不同端口上的Express服务器吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   mobiman    6 年前

    好吧,我想好了。您可以使用 http-proxy-middleware

    然后可以配置 目标 将请求代理到正确域的选项:

    const proxy = require('http-proxy-middleware')
    
    app.use('/api', proxy({ target: 'http://localhost:5000', changeOrigin: true }));