javascript - Nodejs Expressjs app.get 间隔

标签 javascript node.js express

我需要多次调用 app.get() 才能不断更新页面。我有一个经常调用 app.get 的函数,我知道函数 writeToPage() 被调用 app.get() 只被调用一次。如何使用 app.get() 不断更新页面,或者是否有更好/替代的方法来实现我想要的。我需要这个的原因是内容变量发生变化,我需要更新页面。

function writeToPage(content, page) {
    console.log('writeToPage Called');
    app.get(`/${page}`, function (req, res) {
        res.send(content);
        console.log('content Sent');
    });
}

最佳答案

app.get() 用于注册处理程序,当客户端发出匹配的 http 请求时,Express 将调用这些处理程序。这不是你反复称呼自己的东西。您无法以这种方式使浏览器页面自动更新。此外,您只能在原始页面请求上调用一次 res.send() 。调用一次后,页面已发送到浏览器,并且该 http 请求的工作已完成。

如果您希望浏览器页面自动更新,您有以下类型的选项:

  1. 您可以让浏览器页面经常自动重新加载。这可以使用 Javascript 或元刷新标签来完成。这将从您的服务器重新加载页面的新副本,如果值已更新,则会显示新值。

  2. 您可以在网页中使用重复的 ajax 调用来“轮询”您的服务器以查找更改的值,当该值更改时,页面中的 Javascript 可以更新当前页面中的该值以显示新值。

  3. 您可以使用 webSocket 或 socket.io 连接从页面到服务器,然后只要值更新,服务器就可以自动将新值推送到页面。页面中的 JavaScript 将接收这个新值并更新当前页面中的值以显示新值。

关于javascript - Nodejs Expressjs app.get 间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39199792/

相关文章:

javascript - 当Api返回数据时,数据无法以 Angular 方式设置在Object的数据类型中

javascript - 使用 PHP 将 PDF 转为 jpg

javascript - req.session.passport 为空 : req. 用户未定义

node.js - Socket.io 监听多个端口?

javascript - ExpressJS 中的分布式 session 存储

javascript - ExtJS 4.1 - 饼图刷新

javascript - 加载 ="lazy"但对于 html5 视频

javascript - node.js 不读取并返回简单的 HTML 文件

node.js - 扩展 “named-routes” 的 Express JS 路由器 TypeScript 定义

node.js - 多个 Express 应用程序在不同目录中共享相同域