如何在Node.js中将数据从后端传递到前端

问题描述 投票:0回答:2

这个问题已经在这里有了答案:

我有一个使用PUG / Jade文件渲染网页的节点项目。 每分钟执行一次JS文件,以更新Redis数据库,我希望GUI也每分钟更新一次,以反映所有更改。

以下是当前如何传递数据的简化版本:

  1. 用户访问URL .../home
  2. routes.js执行router.get('/home', controller.renderHome)
  3. controller.js执行以下操作:

     function getData(){ return { some_data } } renderHome: async (req, res) => { res.render('home', getDetails()) } 

然后,我可以访问.pug文件中的数据。

使用这种方法,我只能在访问路由(即刷新页面)时获取更新的数据。 但是数据用于绘制图形,我想每分钟更新一次。

相反,我应该如何将数据传递到GUI,这将使我每分钟可以简单地重新绘制图形,而不是每次都强制浏览器重新加载(我猜这是一种不好的做法)

javascript node.js express pug
2个回答
1
投票

您有两种选择:

  1. 使用WebSocket
  2. 公开您的客户端JavaScript可以按指定的时间间隔轮询以更新的API。

WebSocket可能是解决方法: https : //socket.io/


0
投票

使用Socket.io https://socket.io/,然后在前端使用setInterval函数每分钟向后端发出一个socket.io事件。

© www.soinside.com 2019 - 2024. All rights reserved.