Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript express+;帕格应用程序,当txt文件更改时更新多个路由?_Javascript - Fatal编程技术网

Javascript express+;帕格应用程序,当txt文件更改时更新多个路由?

Javascript express+;帕格应用程序,当txt文件更改时更新多个路由?,javascript,Javascript,我有一个简单的express+应用程序,由两个视图组成。localhost:xxxx/和localhost:xxxx/viewview仅显示从文本文件读取的数字,索引路由允许用户增加该数字,并显示该数字。这两个视图将显示在不同的浏览器选项卡中,我使用的是Pug模板。我可以很好地更新索引视图,但无法确定如何在文本文件中的值更改时更新这两个视图 主路由器文件 router.get('/', function(req, res) { let data = fs.readFileSync('./

我有一个简单的express+应用程序,由两个视图组成。localhost:xxxx/和localhost:xxxx/view
view
仅显示从文本文件读取的数字,索引路由允许用户增加该数字,并显示该数字。这两个视图将显示在不同的浏览器选项卡中,我使用的是Pug模板。我可以很好地更新索引视图,但无法确定如何在文本文件中的值更改时更新这两个视图

主路由器文件

router.get('/', function(req, res) {
    let data = fs.readFileSync('./data.txt', 'utf8');
    let number = parseInt(data);
    res.render('index', { number });
})

router.post('/', countController.increment);

router.get('/view', countController.readFile);
控制器

exports.increment = (req, res) => {
  let data = fs.readFileSync('./data.txt', 'utf8');
  let number = parseInt(data);
  number++;
  fs.writeFile('./data.txt', number, function() {
    res.render('index', { number });
  });
}

exports.readFile = (req, res) => {
  let number = fs.readFileSync('./data.txt', 'utf8');
  res.render('view', { number })
}

有没有办法更新在不同浏览器中运行的两个视图,或者我需要使用类似socket.io的东西?谢谢

感谢您提供的有关WebSocket的提示!这篇文章引导我去解决它,把socketio传给我的路由器

单独的选项卡或浏览器代表到服务器的两个唯一连接,因此您必须使用WebSocket或类似setInterval()的东西来不断更新显示。