动态更改SPA用户实时提供的html(node.js)

动态更改SPA用户实时提供的html(node.js),node.js,express,dynamic,websocket,server-side,Node.js,Express,Dynamic,Websocket,Server Side,我正在构建我的第一个实时应用程序,但不了解某些东西是如何工作的。我有一个express.js web应用程序,它使用websockets将用户的实时更改推送给其他用户 假设我们进行了一次拍卖,所有用户都看到了完全相同的产品,出价为0美元。一个用户出价200美元,web应用程序websockets正在运行,所有其他连接的客户看到出价从0美元到200美元 问题是,比如说,一个新的客户端出现在web应用程序上。他们仍然看到相同产品的出价为$0,因为我的服务器提供的是相同的静态html文件,当WebSo

我正在构建我的第一个实时应用程序,但不了解某些东西是如何工作的。我有一个express.js web应用程序,它使用websockets将用户的实时更改推送给其他用户

假设我们进行了一次拍卖,所有用户都看到了完全相同的产品,出价为0美元。一个用户出价200美元,web应用程序websockets正在运行,所有其他连接的客户看到出价从0美元到200美元

问题是,比如说,一个新的客户端出现在web应用程序上。他们仍然看到相同产品的出价为$0,因为我的服务器提供的是相同的静态html文件,当WebSocket用于更新所有连接的客户端时,它不会更新html文件,在这种情况下,更新出价

我觉得我遗漏了一件简单的事情,请让我知道它是什么,在过去的几天里我一直对此感到困惑(我创建了一个帐户b/c,但我找不到答案)

基本上,您如何更改所提供的html文件以使用最新的用户生成的数据进行动态更新。假设用户生成一些内容,推送到服务器,服务器现在将该版本的网页(最新版本)提供给连接/访问我的网站url的任何人

如果您需要任何代码或我的问题的进一步解释,请询问,我将非常感谢任何关闭。谢谢你的时间

编辑:我相信这与我使用Express.js提供“静态”文件有关。这是我用来提供文件的代码

var express = require('express');
var app = express();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.use(express.static(__dirname));

最后一行是以静态方式提供文件的Express。这就是为什么无法更新index.html/what应该改为使用。

如果我理解了请求,您希望提供一个包含用户数据的页面

您需要为每个页面创建一个路由,以便在服务页面之前使用数据“呈现”页面

这趟快车对你很有用。这解释了如何将模板引擎与expressjs结合使用

我把代码放在这里是为了便于阅读

app.set('view engine', 'pug')
app.get('/', function (req, res) {
  res.render('index', { title: 'Hey', message: 'Hello there!' })
})
在index.pug中

html
  head
    title= title
  body
    h1= message

示例使用pugjs作为模板引擎,但您可以使用其他引擎或实现您的引擎。

谢谢Sergio Donati,我相信这可能就是我需要的。因为我只有一个页面(index.html),所以我不需要创建任何额外的路由。