【发布时间】: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