【问题标题】:How to boot up react and node api server on same port?如何在同一端口上启动 react 和 node api 服务器?
【发布时间】:2017-04-22 19:36:33
【问题描述】:

我在port 8080 上构建了一个简单的 express api 服务器。在另一个端口(3000)中,我正在构建客户端,反应从我的快速 api 端点获取数据。为此,我将不得不在单独的端口上运行这两个应用程序。我怎样才能在同一个端口上运行这两个,例如。 8080? 我对此很陌生。非常感谢您的帮助。

【问题讨论】:

    标签: javascript node.js reactjs express


    【解决方案1】:

    1/ 如果您因为 CORS 问题而需要它们在同一端口上运行,则在您的 API 服务器上设置 CORS headers 以允许来自任何来源的请求可能更容易(也是很好的做法):3000。

    2/ 要在同一端口上同时提供 API 和静态页面和脚本,您可以修改 API 服务器以处理对静态内容的请求,或使用反向代理。我推荐nginx to set that up(如果可以的话,也可以提供静态内容)。

    示例 nginx 配置:

    location /api/ {
        proxy_pass http://localhost:8080/;
    }
    
    location / {
        proxy_pass http://localhost:3000/;
    }
    

    【讨论】:

    • 我已经解决了 cors 问题,而且静态页面也不是我想要的。我在前端使用 react
    • 我的意思是从服务器的角度来看是静态的。 React 应用程序由客户端解释。除非你在做服务器端渲染?无论如何,如果对您更有意义,请将“静态页面”替换为“前端”。您仍然需要使用反向代理将两个应用程序分组到同一个源下。
    • 感谢这实际上是一个有趣的想法,用前端替换静态的。但到目前为止,我还没有在任何地方看到它的任何例子。这是否意味着我将view engine 设置为jsx?您能否提供任何示例或文章或视频?
    • 我觉得有误会。我只是说“前端”而不是“静态”这两个词可能更好地反映了你对 React 应用程序的看法,我并没有考虑改变你的应用程序。我的建议(反向代理)与应用程序的工作方式无关,您只需让两个应用程序在不同的端口上运行,然后在它们前面有一个代理将请求分派到正确的应用程序。
    • 哦,对不起。我见过这样的东西,但不太明白它说添加一个键proxy,它的值是api服务器地址。但无法完全理解。
    猜你喜欢
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 2013-09-13
    相关资源
    最近更新 更多