通过env var的MQTT节点密码

时间:2019-05-07 01:41:37

标签: javascript json node-red

尝试使用环境变量中的变量填充MQTT节点(带有红色节点的本地节点)。我在flows.json中使用了how${}表示法,还尝试了settings.js中的process.env.VAR。用户名和主机名起作用(我认为它们是文本字段),但是密码不呈现,而是保存env变量名而不是其内容。即:$()而不是$(MQTT_PASSWORD)

有人解决了这个问题吗?或有信息吗?

2 个答案:

答案 0 :(得分:2)

在节点属性中使用env-vars的原因是,每当Node-RED启动时就可以对其进行动态设置。

如果在保存流配置时将其替换为env-var,则它将被硬编码为该值,将来您将无法更改env-var。这就是保存的配置仍然具有$(MQTT_PASSWORD)的原因。

运行时在启动时创建有问题的节点的实例时要用env-var的当前值代替。

答案 1 :(得分:0)

这是我的 flow.cred 文件。引用的节点是 MQTT 配置节点。 它似乎有效:

{
    "edf18224.a363e": {
        "user": "${MQTT_USER}",
        "password": "${MQTT_PASSWORD}"
    }
}