【问题标题】:How to send data from server-side (Express.js) to client-side (React.js)?如何将数据从服务器端(Express.js)发送到客户端(React.js)?
【发布时间】:2017-10-17 01:14:18
【问题描述】:

使用 Express.js,我正在发送一个包含 React 组件的 html 文件。

app.get('/index', function(req, res) {

      res.sendFile(path.join(__dirname + '/src/index.html'));
  });

出于此目的,假设我想通过我的 html 文件向连接到 localhost:80/index 的每个用户发送一个唯一变量。

如何从服务器端发送变量以及如何从客户端检索它?

【问题讨论】:

  • 你的意思是path.join([__dirname, '/src/index.html'])
  • 您也不应该从 express 中提供静态文件,这对节点事件循环不利。尝试为此使用常规 Web 服务器,而不是应用程序服务器。像 nginx 一样,在生产中是一个 CDN。
  • 那么您如何建议发送包含 React 代码的 html 文件?

标签: javascript node.js reactjs express


【解决方案1】:

这里有几个选项。

  1. 使用 WebSockets。 如果您需要很多很多变量,或者需要实时更新,请查看 WebSockets;一个很好的图书馆是Socket.IO
  2. 指定某个端点以传递数据。 可能是/api/enviroment 或其他什么,并尽快提出此请求。这样做的好处是能够在您的请求中指定更多客户端信息
  3. 使用 Cookie。 这就是它们的用途(document.cookie 是你的朋友)

还有一些其他的方法,但我认为这些是最好的

【讨论】:

  • 感谢您的回答。我已经在我的项目中使用了很多 Socket.IO,但是在我发送文件之后打开了连接,所以我忘记了我应该将变量发送到的客户端(正如我所说,每个用户都是关联的到一个唯一变量)。你知道我如何用 Socket.IO 绕过这个吗?如果现在,我会选择 Cookies 选项。
  • @Mit 你能保留一个用户注册表吗?还是让用户发送一个数据包来指定他们的 UID?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-11
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多