如何将 api 请求重定向到 WAMP 上的 express 端口

How to redirect api requests to express port on WAMP

我有一个 React 应用程序向端口 9000 上 运行 的快速 api 服务器发出请求。 在开发中,我在我的 package.json 中使用了一个代理设置,它按预期工作:

"proxy": "http://localhost:9000/"

我现在已经构建并部署了 api 和客户端,并将它们都部署到 WAMP 上的 www 文件夹中。 api 工作正常,因为我可以使用 Postman 与它交互。客户端也启动了 运行 但是它现在正试图在错误的端口上调用 api:

http://localhost/api/...

如何将 api 请求重定向到 WAMP 上的端口 9000?

http://localhost:9000/api/...

代理功能不适用于制作。它仅用于开发。开发中的代理只是一种生产力功能。如果您在生产环境中从 API 服务器提供单页应用程序,但想在开发应用程序时使用 create-react-app 提供的开发服务器,这将很有用。然而代理只是:一个开发功能。它不适用于生产。

您可以阅读更多相关信息 here。如果您真的想指向一个端口,请将其添加到节点应用程序的 app.js 并考虑在该端口上启动服务器。

最后我决定删除代理设置并在请求前加上正确的 api 域。这样它在开发和生产上都能按预期工作:

private domain = "http://localhost:9000";

get(url: string, params?: any): Promise<any> {
  return new Promise(async (resolve, reject) => {
    try {
      const result = await trackPromise(
        axios.get(this.domain + url, { params: params })
      );
      return resolve(result.data);
    } catch (error) {
      return reject(error.response.data.message);
    }
  });
}