node.js - node-red - API 响应缓存

标签 node.js rest caching node-red

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

如何在 Node-Red 中缓存 API 响应?

最佳答案

node-red-contrib-cache不会自动缓存响应,但您可以自己创建此逻辑,如下所示:

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

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

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

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

如果它不是 null,只需将其直接传递到 http 响应 Node 。

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

关于node.js - node-red - API 响应缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49956933/

相关文章:

javascript - 无法安装 react 过渡组

node.js - 使用 NodeJs 中的回调来实现 MongoDB 4.0 的事务?

java - 使用 Jersey 的 RESTful Web 服务中的路径地址

c# - Windows注销后如何继续运行C#应用程序

node.js - cors 无法在带有 Express 的 firebase 函数中工作

javascript - Express >4.0 版本的 Socket.io 和 Node.js

java - JPA transient 注释和 JSON

java - 选择一个缓存实现,还是自己动手?

caching - AutoProtoSchemaBuilder 未生成原型(prototype)文件

magento - 清除缓存后,Magento 上的 503 服务暂时不可用