在我的项目中,我express, node.js用作后端。对于显示,我使用模板引擎pug。我想知道如何每秒将新数据传递给页面。我将附上下面的代码。
PS 1.setInterval不适合,因为它会给出错误。2. 该方法netInfo.getStats()返回新数据。
app.get('/network', async (req, res)=> {
try {
const netInfo = require('./lib/net');
const netIface = await netInfo.netInterface();
setInterval(async function() {
const stats = await netInfo.getStats();
res.render('network', {
title: 'Network',
slogan: 'Get data about ip address, mask and etc.',
data: {...netIface, ...stats},
});
}, 1000);
} catch (e) {
console.error(e);
}
});
您肯定无法多次渲染数据并将数据提供给客户端。express 给出渲染页面后,会关闭连接,这就是 HTTP 协议的工作原理。AJAX是必不可少的。
在这种情况下,有两个选项: 选项 1:创建一个返回所需数据的 API,客户端脚本每隔一段时间轮询该 API 并更新页面上的数据。
服务器示例
客户端示例
拿来
或者。
选项 2:
感到困惑并创建一个能够向客户端发送数据的 Web 套接字服务器。同样,你不能没有这里的 Klint 代码:你需要连接到 web-socket 服务器,并在数据到达时更新页面上的数据。
网络套接字
为 NodeJS 实现 ws 的库之一