动态更改 html 用户为 SPA 实时服务 (node.js)

Dynamically change html being served real-time by users for SPA (node.js)

我正在构建我的第一个实时应用程序,但我不明白它是如何工作的。我有一个 express.js 网络应用程序,它使用 websockets 将用户的实时更改推送给其他用户。

假设我们有一场拍卖,所有用户都看到以 0 美元的出价显示的完全相同的产品。一位用户出价 200 美元,网络应用程序 websockets 正在运行,所有其他 connected 客户看到出价从 0 美元变为 200 美元。

问题是,假设有一个新客户来到网络应用程序。他们仍然看到相同产品的出价为 0 美元,因为我的服务器正在提供相同的静态 html 文件,当使用 websockets 更新所有 [=30] 时,它不会更新 html 文件=]连接个客户,在本例中更新出价。

我觉得我遗漏了一个简单的东西,请告诉我它是什么,最近几天我对此感到非常困惑(所以我创建了一个帐户 b/c我找不到答案)。

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

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

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

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。这就是无法更新索引的原因吗?html/what 我应该改用它吗?

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

您需要为 "render" 包含数据的页面所需的每个页面创建一个路由,然后再提供它。

这条快递 example 对你很有用。这解释了如何在 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 作为模板引擎,但您可以使用其他模板引擎或实现您的模板引擎。