节点红色中的全局上下文,用于存储http req和res对象

时间:2018-11-02 15:46:02

标签: node.js global-variables node-red

我们正在探索将节点红色作为快速创建我们团队中所需的小型实用程序的一种选择。

我们拥有的典型模式是:
1)从HTTP查询参数获取搜索条件
2)查找记录,这些记录与我们的beddb中的记录匹配
3)为数组中的每个结果调用两个API之一
4)将所有结果组合到一个数组中,并返回对原始请求的响应

在步骤3中,可能有多个msg有效负载,并且流程以某种方式失去了原始的Http req和res对象。最后一步,我们将它们存储在全局上下文中,并在所有结果合并后再次使用。

在有多个请求的情况下,全球语境是否有可能被覆盖?跨多个请求共享吗?还是在上述情况下安全?

1 个答案:

答案 0 :(得分:3)

通常,将msg.req/res存储到上下文是一种反模式,应避免使用。一旦您必须并行处理两个请求,第二个将覆盖第一个。

我将从跟踪这些属性在您的流程中丢失的确切位置开始。节点旨在传递所有消息属性。在某些情况下,可以接受,但非常具体。

如果您发现某个节点删除了消息属性,则可能是该节点的错误需要修复。