【问题标题】:node-red - API response cachingnode-red - API 响应缓存
【发布时间】:2018-04-23 04:15:09
【问题描述】:

我正在使用 Node-RED 中的 http in 节点编写 API。对于某些路径的GET 请求,我想缓存响应,以便不再执行流程。我遇到了两个 Node-RED 包 cacheglobal-cache。但是,它们似乎没有缓存 API 响应。

如何在 node-red 中缓存 API 响应?

【问题讨论】:

  • 第一个可能(在某种程度上)可以用来做你想做的事,第二个似乎与网络连接的 IR 设备有关。编辑问题以显示您如何尝试使用第一个节点,因为就目前而言,这个问题可能有点过于宽泛。
  • @hardillb 我没有使用 node-red-contrib-cache 包,因为我在想,HTTP In 节点可能也必须更改。

标签: node.js rest caching node-red


【解决方案1】:

node-red-contrib-cache 不会自动缓存响应,但您可以像这样自己创建此逻辑:

首先您需要设置msg.topic,这将是缓存键。这里我使用了msg.req.url 表达式:

接下来您需要输入 Cache 节点,该节点将尝试从缓存中获取响应。它将传播msg.payload,如果在缓存中没有找到任何内容,它将返回null

这是您使用 Switch 节点进行分支的地方:

如果是null,则转到将创建响应的节点(在本例中为函数),然后使用输出 Cache 节点将其存储以备后用并将其发送到 http响应节点。

如果不是 null,则直接将其传递给 http 响应 节点。

您可能需要调整缓存键和 TTL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-28
    • 2015-08-21
    • 1970-01-01
    • 2013-10-23
    相关资源
    最近更新 更多