node-red学习二、nodered上下文全局变量

一、前提

Node-RED背景介绍
Node-Red是IBM公司开发的一个可视化的编程工具。它允许程序员通过组合各部件来编写应用程序。这些部件可以是硬件设备(如:Arduino板子)、Web、API(如:WebSocket in和WebSocket out)、功能函数(如:range)或者在线服务(如:email)。
Node-Red提供基于网页的编程环境。通过拖拽已定义node到工作区并用线连接node创建数据流来实现编程。程序员通过点击‘Deploy’按钮实现一键保存并执行。程序以JSON字符串的格式保存,方便用户分享、修改。
Node-Red基于Node.js,它的执行模型和Node.js一样,也是事件驱动非阻塞的。理论上,Node.js的所有模块都可以被封装成Node-Red的一个或几个node。(Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 Node.js 的包管理器 npm是全球最大的开源库生态系统。)

案例
1.设置一个 userid 为全局变量
2.提供给全局进行调用

二、步骤

2.1 设置全局变量

拉取一个 function 模块

flow.set("userid", msg.payload.userid);

node-red学习二、nodered上下文全局变量_第1张图片

2.2 设置完全局变量,获取全局变量

在前面的流程之后,拉取一个 function 模块

flow.get('userid') || 0

node-red学习二、nodered上下文全局变量_第2张图片

参考文档

官方文档

https://nodered.org/docs/user-guide/writing-functions#writing-a-function

node
node.id:功能节点的ID-已添加到0.19
node.name:功能节点的名称-添加在0.19中
node.outputCount:为功能节点设置的输出数量-在1.3中添加
node.log(..):记录一条消息
node.warn(..):记录警告消息
node.error(..):记录错误消息
node.debug(..):记录调试消息
node.trace(..):记录跟踪消息
node.on(..):注册事件处理程序
node.status(..):更新节点状态
node.send(..):发送一条消息
node.done(..):以一条消息结束
context
context.get(..) :获取节点范围的上下文属性
context.set(..) :设置节点范围的上下文属性
context.keys(..) :返回所有节点范围的上下文属性键的列表
context.flow : 和...一样 flow
context.global : 和...一样 global
flow
flow.get(..) :获取流范围的上下文属性
flow.set(..) :设置流范围的上下文属性
flow.keys(..) :返回所有流范围的上下文属性键的列表
global
global.get(..) :获取全局范围的上下文属性
global.set(..) :设置全局范围的上下文属性
global.keys(..) :返回所有全局作用域上下文属性键的列表
RED
RED.util.cloneMessage(..) :安全地克隆消息对象,以便可以重复使用
env
env.get(..) :获取环境变量
其他模块和功能
“功能”节点还使以下模块和功能可用:

Buffer-Node.jsBuffer模块
console-Node.jsconsole模块(node.log是首选的日志记录方法)
util-Node.jsutil模块
setTimeout/clearTimeout -javascript超时功能。
setInterval/clearInterval -JavaScript间隔功能。
注意:功能节点在停止或重新部署时会自动清除所有未完成的超时或间隔计时器。

你可能感兴趣的:(物联网)