我需要多次调用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');
});
}
答案 0 :(得分:4)
app.get()
用于注册在客户端发出匹配的http请求时由Express调用的处理程序。这不是你反复称呼自己的东西。您无法以这种方式使浏览器页面自动更新。此外,您只能在原始页面请求上拨打res.send()
一次。在它被调用一次之后,该页面已被发送到浏览器,您的工作已完成该http请求。
如果您希望浏览器页面自动更新,您可以选择以下类型的选项:
您可以经常自动重新加载浏览器页面。这可以使用Javascript或元刷新标记来完成。这将从您的服务器重新加载页面的新副本,如果值已更新,则会显示新值。
您可以在网页中使用定期的ajax调用来进行"民意调查"您的服务器正在查找更改的值,并且当该值发生更改时,页面中的Javascript可以更新当前页面中的该值以显示新值。
您可以使用从页面到服务器的webSocket或socket.io连接,然后只要更新值,服务器就会自动将新值推送到页面。页面中的Javascript将收到此新值并更新当前页面中的值以显示新值。