design\project\Node-Red 读书笔记(IOT)(二)

675 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

Node-Red 的官方 DEMO 示栗(一)

Node-Red 快速上手指北(一)

概述:design\project\Node-Red 读书笔记(IOT)(一)

通用节点:

  • 捕获节点:try catch
  • 完成节点:complted 事件
  • 调试节点:log.debug
    • 调试信息输出到状态区域
  • 注入节点
    • 每当节点RED启动时触发
    • 定期触发
    • 在特定时间触发
  • 链接节点:相当于 BPMN 的事件
    • 跨页签链接
    • 状态变化捕获节点 函数节点(一):
  • 设定函数(change)
  • 延迟函数(delay)
    • 限流(整流)
  • 指令函数(exec)
  • 功能节点(脚本语言)
    • 返回消息数组(多个出口)
    • 异步发送消息
    • 记录日志
    • 异常处理
    • 在上下文中存储数据
    • 展示状态信息
    • 使用外部模块
    • Setup 和 close
    • 异步 setup
  • 数值范围映射(range)
  • 分支函数(switch)
  • 消息体格式化(template)
  • 触发器(trigger)
    • 断线检测
    • 双 Trigger 自动重发模型
    • 超时处理模型

通用节点

1. 捕获节点(catch)

image.png

2.完成节点(complete)

image.png

3. 调试节点(debug)

image.png

  • 调试输出完整对象

image.png

  • 调试信息输出到控制台

image.png

  • 调试信息输出到状态区域

image.png

  • 使用JSONata格式化输出

image.png

4. 注入节点(inject)

用于手动触发流程,或者定期触发流程

  • 每当节点RED启动时触发

image.png

  • 定期触发

image.png

  • 在特定时间触发

image.png

5. 链接节点(link)

image.png

  • 跨页签链接

image.png

  • 链接调用

image.png

  • 状态变化捕获节点

image.png

函数节点(一)

1. 设定函数(change)

  • 将消息属性设置为固定值

image.png

  • 设置任何属性值

image.png

  • 使用JSONata设置值

image.png

  • 从环境变量设置值

image.png

  • 设置 flow 上下文

image.png

  • 删除消息属性

image.png

  • 转移消息属性值

image.png

2. 延迟函数(delay)

image.png

  • 按消息属性延迟消息

image.png

  • 重置或刷新延迟消息
    • 大家看到延迟节点下有个状态数字 7,标识目前有 7 条消息阻塞在延迟节点
    • reset 就是设置 msg.reset = true ,让延迟节点中的 7 条消息全部 byebye 放弃执行
    • flush 就是设置 msg.flush = true ,让延迟节点中的 7 条消息全部立即执行

image.png

  • 限流(整流)
    • 跟 Java 中的限流一样,让消息每秒多少条,不过对比专业的限流就比较 low 了,算整流?

image.png

  • 按主题 topic 限流(整流)

image.png

3. 指令函数(exec)

image.png

  • 执行外部命令并获得错误输出

image.png

  • spawn 模式下执行外部命令

image.png

4. 功能节点(脚本语言)

image.png

  • 返回消息数组(多个出口)

image.png

  • 异步发送消息

image.png

  • 记录日志

image.png

  • 异常处理

image.png

  • 在上下文中存储数据

image.png

  • 展示状态信息

image.png

  • 使用外部模块
 functionGlobalContext: {
     // os:require('os'),
     // jfive:require("johnny-five"),
     // j5board:require("johnny-five").Board({repl:false})
 },

image.png

  • Setup 和 close

功能节点代码提供 Setup 和 close 代码。

  • “设置(Setup)”选项卡包含的代码将在节点启动时运行
  • “关闭(close)”选项卡包含节点停止时将运行的代码。

image.png

  • 异步 setup

执行异步工作的“Setup”代码可以返回工作的promise对象。在启动功能体之前,要等待承诺的完成。

image.png

5. 数值范围映射(range)

相当于统计学中的上扬,将分数 0~100 分,映射为 不及格,及格,优秀

image.png

  • 下卷

image.png

6. 分支函数(switch)

image.png

  • switch 各个 case 不 break

image.png

  • switch 各个 case 加 break

image.png

  • 根据 payload 的数据类型选择输出

image.png

  • 使用JSONata表达式选择分支

image.png

  • 使用JSONata表达式选择分支(二)

image.png

  • 消息序列重建

image.png

  • 根据消息的一个属性路由消息

image.png

  • 根据上下文值路由消息

image.png

7. 消息体格式化(template)

image.png

  • 将结果解析为JSON

image.png

  • 将结果解析为YAML

image.png

8. 触发器(trigger)

  • 2 秒后执行

image.png

  • 如果在定义的时间后没有收到消息,则触发流(断线检测)

image.png

  • 双 Trigger 模型

image.png

  • 超时处理模型

image.png