首页 > 解决方案 > 如何在 Express 中发送响应

问题描述

我正在使用 express 和 MongoDB,并且每当我的数据库中发生任何更改时都需要一些实时更新。我使用 MongoDB 更改流。但是,当我将更改功能放在路线内时,它只会在我到达路线时发送响应,而当我将更改功能放在路线之外时,我无法发送响应。

所以我的问题是当我的收藏发生任何变化时如何发送响应。

const testSchema = new Schema({
  name: { type: String, required: true },
  email: { type: String, required: true },
});

const model = mongoose.model('test', testSchema);

//change 
model.watch().on('change', (data) => {
  console.log(data);
});

router.put('/update', async (req, res) => {
  const data = req.body;
  const info = await model.updateOne(data);
  res.send(info);
});

标签: javascriptnode.jsmongodbexpress

解决方案


您要实现的目标依赖于Web socket
套接字是使应用程序通过网络进行通信的方式。

您的浏览器使用套接字编程。它在 80 端口与服务器建立连接(仅用于 HTTP 请求),并从服务器获取数据并根据标记显示。

如果您曾经玩过任何在线游戏,例如反恐精英,您曾经是其中的主持人,那么您就会了解它的用法。您将自己建立为分配了特定端口以进行通信的主机。然后游戏使用该套接字将数据传递给其他计算机。

您必须学习和理解SocketIO才能实现这一目标。

大多数课程都在解释如何将其用于聊天应用程序。但是,如果您更好地理解它,您将能够在套接字上构建任何东西。


推荐阅读