mirror of https://github.com/node-red/node-red.git
173 lines
11 KiB
HTML
173 lines
11 KiB
HTML
<!--
|
|
Copyright JS Foundation and other contributors, http://js.foundation
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
-->
|
|
|
|
<script type="text/html" data-help-name="split">
|
|
<p>Splitst een bericht in een reeks berichten.</p>
|
|
|
|
<h3>Invoer</h3>
|
|
<dl class="message-properties">
|
|
<dt>payload<span class="property-type">object | string | array | buffer</span></dt>
|
|
<dd>Het gedrag van de node wordt bepaald door het type van <code>msg.payload</code>:
|
|
<ul>
|
|
<li><b>string</b>/<b>buffer</b> - het bericht wordt gesplitst met het opgegeven teken (standaard: <code>\n</code>), bufferreeks of in vaste lengtes.</li>
|
|
<li><b>array</b> - het bericht wordt gesplitst in individuele array-elementen, of arrays met een vaste lengte.</li>
|
|
<li><b>object</b> - er wordt een bericht verzonden voor elk sleutel/waarde-paar van het object.</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<h3>Uitvoer</h3>
|
|
<dl class="message-properties">
|
|
<dt>parts<span class="property-type">object</span></dt>
|
|
<dd>Deze eigenschap bevat informatie over hoe het bericht is gesplitst van
|
|
het oorspronkelijke bericht. Als het aan de <b>join</b> node wordt doorgegeven, kan de reeks worden
|
|
samengesteld tot een enkel bericht. De eigenschap heeft de volgende eigenschappen:
|
|
<ul>
|
|
<li><code>id</code> - een identificatie voor de groep berichten</li>
|
|
<li><code>index</code> - de positie binnen de groep</li>
|
|
<li><code>count</code> - indien bekend, het totale aantal berichten in de groep. Zie 'streaming modus' hieronder.</li>
|
|
<li><code>type</code> - het type bericht - string/array/object/buffer</li>
|
|
<li><code>ch</code> - voor een string of buffer, de gegevens gebruikt om het bericht te splitsen als string of een array van bytes</li>
|
|
<li><code>key</code> - voor een object, de sleutel van de eigenschap waaruit dit bericht is gemaakt. De node kan worden geconfigureerd om deze waarde ook naar andere berichteigenschappen te kopieren, zoals <code>msg.topic</code>.</li>
|
|
<li><code>len</code> - de lengte van elk bericht bij splitsen met een vaste lengtewaarde</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<h3>Details</h3>
|
|
<p>Deze node maakt het gemakkelijk om een flow te maken die algemene acties uitvoert over
|
|
een reeks berichten voordat, met behulp van de <b>join</b> node, de
|
|
reeks wordt samengevoegd tot een enkel bericht.</p>
|
|
<p>Het gebruikt de <code>msg.parts</code> eigenschap om de individuele delen
|
|
van een reeks bij te houden.</p>
|
|
<h4>Streaming modus</h4>
|
|
<p>De node kan ook worden gebruikt om een stroom berichten te herordenen. Bijvoorbeeld, een
|
|
serieel apparaat dat newline-getermineerde commando's verzendt, kan een enkel bericht
|
|
met een gedeeltelijk commando aan het einde leveren. In 'streaming modus' zal deze node
|
|
een bericht splitsen en elk volledig segment verzenden. Als er een gedeeltelijk segment aan het einde is,
|
|
houdt de node dit vast en voegt het toe aan het volgende bericht dat wordt ontvangen.
|
|
</p>
|
|
<p>Bij gebruik in deze modus stelt de node de <code>msg.parts.count</code>
|
|
eigenschap niet in omdat het niet weet hoeveel berichten in de stroom te verwachten zijn. Dit
|
|
betekent dat het niet kan worden gebruikt met de <b>join</b> node in zijn automatische modus.</p>
|
|
</script>
|
|
|
|
<script type="text/html" data-help-name="join">
|
|
<p>Voegt reeksen berichten samen tot een enkel bericht.</p>
|
|
<p>Er zijn drie modi beschikbaar:</p>
|
|
<dl>
|
|
<dt>automatisch</dt>
|
|
<dd>Wanneer gekoppeld aan de <b>split</b> node, zal het automatisch de berichten samenvoegen om de splitsing die werd uitgevoerd ongedaan te maken.</dd>
|
|
<dt>handmatig</dt>
|
|
<dd>Voeg reeksen berichten samen op verschillende manieren.</dd>
|
|
<dt>reduceer reeks</dt>
|
|
<dd>Pas een expressie toe op alle berichten in een reeks om deze te reduceren tot een enkel bericht.</dd>
|
|
</dl>
|
|
<h3>Invoer</h3>
|
|
<dl class="message-properties">
|
|
<dt class="optional">parts<span class="property-type">object</span></dt>
|
|
<dd>Om automatisch een reeks berichten samen te voegen, moeten ze allemaal
|
|
deze eigenschap hebben ingesteld. De <b>split</b> node genereert deze eigenschap, maar het
|
|
kan handmatig worden gemaakt. Het heeft de volgende eigenschappen:
|
|
<ul>
|
|
<li><code>id</code> - een identificatie voor de groep berichten</li>
|
|
<li><code>index</code> - de positie binnen de groep</li>
|
|
<li><code>count</code> - het totale aantal berichten in de groep</li>
|
|
<li><code>type</code> - het type bericht - string/array/object/buffer</li>
|
|
<li><code>ch</code> - voor een string of buffer, de gegevens gebruikt om het bericht te splitsen als string of een array van bytes</li>
|
|
<li><code>key</code> - voor een object, de sleutel van de eigenschap waaruit dit bericht is gemaakt</li>
|
|
<li><code>len</code> - de lengte van elk bericht bij splitsen met een vaste lengtewaarde</li>
|
|
</ul>
|
|
</dd>
|
|
<dt class="optional">complete</dt>
|
|
<dd>Indien ingesteld, voegt de node de payload toe en verzendt vervolgens het uitvoerbericht in zijn huidige staat.
|
|
Als je de payload niet wilt toevoegen, verwijder deze dan uit de msg.</dd>
|
|
<dt class="optional">reset</dt>
|
|
<dd>Indien ingesteld, wist de node elk gedeeltelijk volledig bericht en verzendt het niet.</dd>
|
|
<dt class="optional">restartTimeout</dt>
|
|
<dd>Indien ingesteld, en de node heeft een timeout geconfigureerd, wordt die timeout herstart.</dd>
|
|
</dl>
|
|
<h3>Details</h3>
|
|
|
|
<h4>Automatische modus</h4>
|
|
<p>Automatische modus gebruikt de <code>parts</code> eigenschap van inkomende berichten om
|
|
te bepalen hoe de reeks moet worden samengevoegd. Hierdoor kan het automatisch
|
|
de actie van een <b>split</b> node ongedaan maken.</p>
|
|
|
|
<h4>Handmatige modus</h4>
|
|
<p>Wanneer geconfigureerd om in handmatige modus samen te voegen, kan de node reeksen
|
|
van berichten samenvoegen tot verschillende resultaten:</p>
|
|
<ul>
|
|
<li>een <b>string</b> of <b>buffer</b> - gemaakt door de geselecteerde eigenschap van elk bericht samen te voegen met de opgegeven tekens of buffer.</li>
|
|
<li>een <b>array</b> - gemaakt door elke geselecteerde eigenschap, of volledig bericht, aan de uitvoerarray toe te voegen.</li>
|
|
<li>een <b>sleutel/waarde object</b> - gemaakt door een eigenschap van elk bericht te gebruiken om de sleutel te bepalen waaronder
|
|
de vereiste waarde wordt opgeslagen.</li>
|
|
<li>een <b>samengevoegd object</b> - gemaakt door de eigenschap van elk bericht samen te voegen onder een enkel object.</li>
|
|
</ul>
|
|
<p>De andere eigenschappen van het uitvoerbericht worden overgenomen van het laatst ontvangen bericht voordat het resultaat wordt verzonden.</p>
|
|
<p>Een <i>telling</i> kan worden ingesteld voor hoeveel berichten moeten worden ontvangen voordat het uitvoerbericht wordt gegenereerd.
|
|
Voor objectuitvoer kan de node, zodra deze telling is bereikt, worden geconfigureerd om een bericht te verzenden voor elk volgend bericht
|
|
dat wordt ontvangen.</p>
|
|
<p>Een <i>timeout</i> kan worden ingesteld om het verzenden van het nieuwe bericht te activeren met wat tot nu toe is ontvangen.
|
|
Deze timeout kan worden herstart door een bericht te verzenden met de <code>msg.restartTimeout</code> eigenschap ingesteld.</p>
|
|
<p>Als een bericht wordt ontvangen met de <code>msg.complete</code> eigenschap ingesteld, wordt het uitvoerbericht gefinaliseerd en verzonden.
|
|
Dit reset alle deeltellingen.</p>
|
|
<p>Als een bericht wordt ontvangen met de <code>msg.reset</code> eigenschap ingesteld, wordt het gedeeltelijk voltooide bericht verwijderd en niet verzonden.
|
|
Dit reset alle deeltellingen.</p>
|
|
|
|
<h4>Reduceer Reeks modus</h4>
|
|
<p>Wanneer geconfigureerd om in reduceermodus samen te voegen, wordt een expressie toegepast op elk
|
|
bericht in een reeks en het resultaat geaccumuleerd om een enkel bericht te produceren.</p>
|
|
|
|
<dl class="message-properties">
|
|
<dt>Beginwaarde</dt>
|
|
<dd>De beginwaarde van de geaccumuleerde waarde (<code>$A</code>).</dd>
|
|
<dt>Reduceer-expressie</dt>
|
|
<dd>Een JSONata-expressie die wordt aangeroepen voor elk bericht in de reeks.
|
|
Het resultaat wordt doorgegeven aan de volgende aanroep van de expressie als de geaccumuleerde waarde.
|
|
In de expressie kunnen de volgende speciale variabelen worden gebruikt:
|
|
<ul>
|
|
<li><code>$A</code>: de geaccumuleerde waarde, </li>
|
|
<li><code>$I</code>: index van het bericht in de reeks, </li>
|
|
<li><code>$N</code>: aantal berichten in de reeks.</li>
|
|
</ul>
|
|
</dd>
|
|
<dt>Herstel-expressie</dt>
|
|
<dd>Een optionele JSONata-expressie die wordt toegepast nadat de reduceer-expressie
|
|
is toegepast op alle berichten in de reeks.
|
|
In de expressie kunnen de volgende speciale variabelen worden gebruikt:
|
|
<ul>
|
|
<li><code>$A</code>: de geaccumuleerde waarde, </li>
|
|
<li><code>$N</code>: aantal berichten in de reeks.</li>
|
|
</ul>
|
|
</dd>
|
|
<p>Standaard wordt de reduceer-expressie in volgorde toegepast, van het eerste
|
|
tot het laatste bericht van de reeks. Het kan optioneel in omgekeerde
|
|
volgorde worden toegepast.</p>
|
|
<p>$N is het aantal berichten dat aankomt - zelfs als ze identiek zijn.</p>
|
|
</dl>
|
|
<p><b>Voorbeeld:</b> de volgende instellingen, gegeven een reeks numerieke waarden,
|
|
berekent de gemiddelde waarde:
|
|
<ul>
|
|
<li><b>Reduceer-expressie</b>: <code>$A+payload</code></li>
|
|
<li><b>Beginwaarde</b>: <code>0</code></li>
|
|
<li><b>Herstel-expressie</b>: <code>$A/$N</code></li>
|
|
</ul>
|
|
</p>
|
|
<h4>Berichten opslaan</h4>
|
|
<p>Deze node buffert intern berichten om over reeksen te werken. De
|
|
runtime-instelling <code>nodeMessageBufferMaxLength</code> kan worden gebruikt om te beperken hoeveel berichten nodes
|
|
zullen bufferen.</p>
|
|
</script>
|