Script Switch¶
Script Switch 节点根据编写的 JavaScript 的结果路由传入的消息。
节点类型¶
Filter。
输入和输出能力¶
该节点具有 1 个入口点和 3 个出口点。3 个出口点的路由将根据脚本的返回值,即 “True”,“False” 和 “Failure”。
节点属性¶

设置标签¶
名称
该节点的名称。
描述
该节点的描述。
Script 标签¶
用于路由传入消息的 JavaScript(支持ES8)。受支持的函数为 transform
,带有两个参数,分别为 msg
和 metadata
。msg
是输入消息,而 metadata
可以是 MQTT topic,该 topic 可在脚本中使用。
点击 测试 按钮,通过输入消息来测试 JavaScript,查看 JavaScript 是否能按设计意图工作。
使用限制¶
不支持 Javascript ES6。
脚本必须返回以下 3 个值之一:true、false 或 failure。
示例¶
输入示例¶
{
"MetaData": {
"messageType": "PostAttribute",
"assetId": "nBTRDedF",
"deviceKey": "l6FGAivrJ1",
"productKey": "p1N2tYVi",
"orgId": "o16109619073861404"
},
"Body": {
"location":"Shanghai"
}
}
输出示例¶
此节点不会修改消息,输出将与输入相同。
脚本示例¶
// productKey 需要属于 <Rule Entry 中运行输入的产品> 或 <绑定了 Rule Entry 中规定的网关的产品>
// 同时, 传入的消息中定义了 location 的值为 "Shanghai"
if (metadata.productKey == 'p1N2tYVi' && msg.location == 'Shanghai') {
return true;
}
//location 在传入的消息中未定义
if (typeof msg.location === 'undefined') {
throw new Error('location not defined in msg');
}
//以上两种情况皆不符合时
return false;