【问题标题】:express + pug app, update multiple routes when txt file changes?express + pug 应用程序,当 txt 文件更改时更新多条路线?
【发布时间】:2019-02-04 18:56:54
【问题描述】:

我有一个由两个视图组成的简单 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 之类的东西吗?谢谢!

【问题讨论】:

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

标签: javascript


【解决方案1】:

感谢有关 websockets 的提示!这篇文章引导我找到解决它的方向,将 socketio 传递给我的路由器。 Use socket.io inside a express routes file

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 2018-02-06
    • 2021-06-04
    • 2016-04-28
    • 2014-12-19
    相关资源
    最近更新 更多