我有这段代码,它会重新加载mysql连接并在html表中显示结果集。我想每60秒刷新一次此页面,以便在页面中显示新数据,当前手动刷新有效,但需要使其自动化。我正在使用浏览器刷新,但不确定如何每60秒进行设置,或者是否有其他方法可以执行此操作我正在使用浏览器刷新<script src="{process.env.BROWSER_REFRESH_URL}"></script> 和if (process.send) { process.send('online'); }我的代码如下:const http = require('http');const mysql = require('mysql');const pool = mysql.createPool({ host: 'localhost', user: 'root', password: '', database: 'alerts', charset: 'utf8'});var reo ='<html><head><title>POWER CUT ALERT</title></head><body><h1>POWER CUT ALERT</h1>{${table}} <script src="{process.env.BROWSER_REFRESH_URL}"></script> </body></html>';function setResHtml(sql, cb){ pool.getConnection((err, con)=>{ if(err) throw err; con.query(sql, (err, res, cols)=>{ if(err) throw err; var table =''; //to store html table //create html table with data from res. for(var i=0; i<res.length; i++){ table +='<tr><td>'+ (i+1) +'</td><td>'+ res[i].timestamp +'</td><td>'+ res[i].device_id +'</td></tr>'; } table ='<table border="1"><tr><th>Nr.</th><th>Timestamp</th><th>IMEI NO</th></tr>'+ table +'</table>'; con.release(); //Done with mysql connection con.destroy(); return cb(table); }); });}let sql ='SELECT * from alerts';const server = http.createServer((req, res)=>{ setResHtml(sql, resql=>{ var reo2 = reo.replace('{${table}}', resql); res.writeHead(200, {'Content-Type':'text/html; charset=utf-8'}); res.write(reo2, 'utf-8'); res.end(); if (process.send) { process.send('online'); } });});server.listen(8080, ()=>{ console.log('Server running at //localhost:8080/');});
1 回答

婷婷同学_
TA贡献1844条经验 获得超8个赞
您可以简单地setInterval用于此目的。
setInterval(function () {
//Call the server api
}, 1000 * 60);
浏览器刷新具有不同的目的:
该模块通过在服务器上修改前端资源时启用即时网页刷新来提高生产力。
基本上(非常类似于nodemon),它跟踪文件系统中的更改,并支持CSS和JavaScript的实时重载。
添加回答
举报
0/150
提交
取消