- 1. 前言
- 2. Custom definiert节点JavaScript 文件
- 3. 节点构建器
- 4. 接受信息
- 5. 接受信息
- 6. 下发信息
- 7. 日记Ereignisse
- 8. 设置Status
- 9. Custom definiert节点设置
前言
在node-red中如果你没有找zu自己需要的节点时,那么你可以Custom definiert一个节点来满足自己的需求。之前的Artikel中,我有简单介绍过如何创建一个节点,并以转换大小写来举例。例子虽然简单,但可以让大家了解创建Custom definiert节点的步骤以及一个节点的组成部Unterteilung。那么本篇将会聚焦在Custom definiert节点的js文件中。详细讲解Von denen的api,及其他配置项。通过之前的Artikel我们知道,节点的js文件是一个节点的核心文件,用于收取配置Parameter,处理业务逻辑,并向下游Senden SieDaten。下面让我们一起看看吧。
Custom definiert节点JavaScript 文件
节点构建器
所有的节点都是由一个构建器来生成的函数,是创建的一个新的实例。这个函数被RegistrierungzuBetrieb时中,
这个函数通过设置一个配置对象来Existenz于流Herausgeber器中。
在该函数中,Die一件事就是调用RED.nodes.createNode函数,来Sequenz化Eigenschaften,被其他节点共享。在这之后
就可以编写业务代码啦。
如下
接受信息
节点通过Registrierung一个inputEreignisse来接受上游节点下发的信息在整个流中。RegistrierungEreignisse时,在Ereignisse的回调函数里,会有msg和send两个Parameter,msg就是上游传递过来的Daten。send是要下发zu下游的一个函数。Die三个函数 done 是节点abgeschlossen.业务逻辑处理后调用的函数。
Beispiel
function SampleNode(config) {
RED.nodes.createNode(this,config);
// node-specific code goes here
}
RED.nodes.registerType("sample",SampleNode);
接受信息
节点通过Registrierung一个inputEreignisse来接受上游节点下发的信息在整个流中。RegistrierungEreignisse时,在Ereignisse的回调函数里,会有msg和send两个Parameter,msg就是上游传递过来的Daten。send是要下发zu下游的一个函数。Die三个函数 done 是节点abgeschlossen.业务逻辑处理后调用的函数。
Beispiel
this.on('input', function(msg, send, done) {
// do something with 'msg'
// Once finished, call 'done'.
// This call is wrapped in a check that 'done' exists
// so the node will work in earlier versions of Node-RED (<1.0)
if (done) {
done();
}
});
下发信息
在Custom definiert节点中向下游Senden Sie信息非常的简单
只需要使用send函数即可,如下
var msg = { payload:"hi" }
this.send(msg);
如果节点想要在inputEreignisse中向下游Senden Sie信息,可以这样做
let node = this;
this.on('input', function(msg, send, done) {
// For maximum backwards compatibility, check that send exists.
// If this node is installed in Node-RED 0.x, it will need to
// fallback to using `node.send`
send = send || function() { node.send.apply(node,arguments) }
msg.payload = "hi";
send(msg);
if (done) {
done();
}
});
在inputEreignisse的回调函数中,有三个Parameter,Die一个是接受zu的信息,Die二个是send函数,
Die三个是done函数。Unterteilung别有不同Benutzungsszenarien。
如果要向下游输入多个Parameter可以这样写
this.send([ msg1 , msg2 ]);
this.send([ [msgA1 , msgA2 , msgA3] , msg2 ]);
日记Ereignisse
在Custom definiert节点中打印日志,只需在this下调用log,warn等方法即可。日志会在控制台中打印出来。
this.log("Something happened");
this.warn("Something happened you should know about");
this.error("Oh no, something bad happened");
// Since Node-RED 0.17
this.trace("Log some internal detail not needed for normal operation");
this.debug("Log something more details for debugging the node's behaviour");
设置Status
有些节点为了表明已经配置成功,或配置有误,会有一个Status显示。
该Status也是在js文件中设置的,只需要调用status即可。
如下
this.status({fill:"red",shape:"ring",text:"disconnected"});
fill Status的颜色
shape Status的图标
text Status的Text
Custom definiert节点设置
如果你在制作节点时,想要将节点的一个属性配置zusetting文件中,那么可以这样做。
假如你的节点Typus为,fizz-node,并将Von denen的color 放zusetting文件中,那么在setting文件中你需要这样配置fizzNodeColor。
在使用时,使用RED.settings.fizzNodeColor来访问。
Antwort veröffentlichen