node-red - API 响应缓存

node-red - API response caching

我正在用 Node-RED 中的 http in 节点编写一个 API。对于某些路径的 GET 请求,我想缓存响应,这样就不会进一步执行流程。我遇到了两个 Node-RED 包 cache and global-cache。但是,他们似乎没有缓存 API 响应。

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

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

首先你需要设置msg.topic作为缓存键。这里我用了msg.req.url表达式:

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

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

如果它是 null,您转到将创建响应的节点(在本例中是一个函数),然后使用输出 Cache 节点存储它稍后将其发送到 http response 节点。

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

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