javascript - 如何每 60 秒刷新一次页面以重新加载 mysql 查询

标签 javascript node.js

我有这段代码可以重新加载 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/');
});

最佳答案

为此,您可以简单地使用 setInterval

setInterval(function () { 
    //Call the server api
}, 1000 * 60); 

浏览器刷新有不同的目的:

This module improves productivity by enabling instant web page refreshes anytime a front-end resource is modified on the server.

基本上(与 nodemon 非常相似)它跟踪文件系统的变化并支持 CSS 和 JavaScript 的实时重新加载。

关于javascript - 如何每 60 秒刷新一次页面以重新加载 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56095648/

相关文章:

javascript - 未捕获的类型错误 : Cannot read property 'route'

javascript - jQuery 中的 mousedown 后 mouseup 不触发

javascript - 如何使用 Bootstrap 创建以下响应式布局?

javascript - Eclipse Javascript 错误突出显示

javascript - 未安装 Sails

javascript - 在每个路由调用上执行中间件

node.js - 更改后重新处理请求

javascript - 与 Chai 和 Sinon 一起测试 promise 的服务

javascript - 如何使用 sequelize 和 node 插入由多个对象组成的数组?

node.js - 使用 Handlebars 比较迭代值