Nodejs Expressjs app.get interval

时间:2016-08-29 06:28:59

标签: 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');
    });
}

1 个答案:

答案 0 :(得分:4)

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

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

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

  2. 您可以在网页中使用定期的ajax调用来进行"民意调查"您的服务器正在查找更改的值,并且当该值发生更改时,页面中的Javascript可以更新当前页面中的该值以显示新值。

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