node.js - 如何在发出请求时等待客户端的响应?

标签 node.js express

这是流程:

  1. 我向我的服务器发送请求:GET/status/
  2. 我的服务器向我的客户端发送推送通知
  3. 我的客户 - 稍有延迟后(最多 10 秒) - 向我的服务器发出请求,状态为:POST /状态/XYZ
  4. 现在我在第 1 步开始的请求应该返回 XYZ

我的服务器是node.js,我使用express进行路由。我有什么想法可以实现这样的目标吗?我的想法是在步骤 3 中将状态存储在数据库中,并在步骤 1 中每秒查询我的数据库,直到获得状态,但我很确定这不是一个好的解决方案。

最佳答案

实时状态?您应该为此使用套接字。看看socket.io

仍想使用 HTTP(s) 请求吗?

只需将第一个请求的结果存储到数据库内部(或外部)的对象中(它将充当缓存层)。因此,当他查询时,他可以立即得到结果。像这样的东西:

{
 ABC: value
 XYZ: value,
}
router.post('status/XYZ', (req, res) => {
  return res.json(values['XYZ']);
});

关于node.js - 如何在发出请求时等待客户端的响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42054137/

相关文章:

json - MongoDB/Node : Insert part of a doc in a collection into a doc in another collection

javascript - 获取 redis 列表中特定字符串的索引?

javascript - 在 Node.js/Express.js 中,如何将 JSON 对象从服务器传输到客户端?

node.js - -已修复-无法获取/express 和 Node js

node.js - 手动安装 NPM 包

javascript - 如何在 Node 中使用 supertest 包附加同一目录中的多个文件?

node.js - MVC 框架中的 Controller ,用于没有 View 的 REST API

node.js - 连接到 Azure 移动服务上托管的 Socket.IO 服务器返回错误

node.js - 如何从 React 提交 multipart/form-data 到 express?

javascript - 向变量添加值不起作用,仅附加