如何在本地网络上托管 react + 节点服务器

How do i host react + node server on a local network

提问人:Apostolis16 提问时间:9/12/2023 更新时间:9/21/2023 访问量:64

问:

我想在本地网络上托管一个 react 服务器和一个节点服务器,该网站有多个页面并使用 axios 从节点服务器发送和接收数据,在package.json中有一个代理来指导对节点服务器做出反应

  "proxy": "http://localhost:8080",
  "homepage": "./"

PS:如果这很重要,我会使用 Express.js

JavaScript 节点 .js ReactJS 网络 LAN

评论

2赞 Konrad 9/12/2023
什么不起作用?
0赞 Aleksandar 9/12/2023
尝试重启前端

答:

3赞 Aditya 9/12/2023 #1

确保它在特定端口上运行,例如端口 8080

const express = require('express');
const app = express();
const port = 8080;

// Define your routes and middleware here

app.listen(port, () => {
  console.log(`Node server is running on port ${port}`);
});

现在你的 React 应用程序已经在 package.json 文件中配置了“proxy”字段,它很好

使用以下命令运行 React 开发服务器:

npm start

默认情况下,它应该在端口 3000 上运行。

现在访问本地的 React

通过查找本地 IP 地址并指定端口(通常为 3000),从同一本地网络上的其他设备访问您的 React 应用程序:

从同一网络上的另一台设备找到您的本地 IP 地址,打开 Web 浏览器并输入现在可以在本地服务器上访问 不轮到发出 API 请求http://your-local-ip:3000.

在 React 应用程序中,使用或任何其他 HTTP 客户端,使用代理中定义的相对路径向 Node 服务器发出 API 请求。axios

例如,如果您的 Node 服务器中有这样的路由

app.get('/api/data', (req, res) => {
  // Handle the API request here
});

你可以像这样从你的 React 应用程序发出请求

axios.get('/api/data')
  .then(response => {
    // Handle the response data
  })
  .catch(error => {
    // Handle errors
  });

中的代理配置会自动将请求路由到 http://localhost:8080/api/datapackage.json

现在你的 react 应用程序和 Node 服务器应该在你的本地网络上协同工作。

0赞 Apostolis16 9/21/2023 #2

我刚刚使用了 serve 和 npm run build,我可以在 lan 上访问它