javascript - 使用 superagent-cache 缓存不同参数的 HTTP 响应

标签 javascript node.js caching superagent

我正在使用 superagent-cache 在 Node Express 服务器上缓存响应。 所以请求是这样的:

myServer.com/api/posts?id=21

并且缓存工作得很好。一旦 Node 从 API 服务器获取响应,它就会将相同的数据传递给所有访问的用户,而不是一次又一次地调用 API。

现在的问题是我想将用户的 ID 添加到请求中。所以新的请求变成:

myServer.com/api/posts?id=21&userId=123

现在缓存变得特定于用户。 Superagent 将其视为单独的请求,并每次为每个用户获取它。这是多余的。有什么方法可以告诉 superagent 避免使用 userId param 吗?

最佳答案

我是superagent-cache的作者。很高兴您喜欢它!

您可以使用.pruneQuery chainable使用给定参数执行查询,但在没有该参数的情况下将其缓存为生成的 key 的一部分。

您的新代码应如下所示:

superagent
  .get('myServer.com/api/posts')
  .query({id: id, userId: userId})
  .pruneQuery(['userId'])
  .end(function (error, response){
    // handle response
  }
);

关于javascript - 使用 superagent-cache 缓存不同参数的 HTTP 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36889765/

相关文章:

firebase - 缓存 Firebase 请求的云函数的示例,并且仅在成功编辑配置文件后重新缓存

javascript - 设置在小型设备上可扩展的 div

Javascript 扩展类

javascript - 防止 Jasmine 中的 onComplete 退出

php - 什么正在预热已清除的缓存?

python - 如何重用/克隆 sqlalchemy 查询

javascript - useState 不会在数组状态上使用 push、unshift 和 pop 重新渲染

java - Selenium 将文本框视为隐藏,即使我可以在浏览器中看到它

javascript - CouchDB 更新处理程序 : doc update/insert using Nano

javascript - 如何正确调用嵌套在 waterfall 函数中的异步 forEachOf 函数