2020-01-31 03:10:04 +01:00
|
|
|
|
<!--
|
|
|
|
|
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.
|
|
|
|
|
-->
|
|
|
|
|
|
2023-07-10 10:51:52 +02:00
|
|
|
|
<script type="text/html" data-help-name="split">
|
2020-01-31 03:10:04 +01:00
|
|
|
|
<p>将一条消息拆分为一系列消息。</p>
|
|
|
|
|
|
|
|
|
|
<h3>输入</h3>
|
|
|
|
|
<dl class="message-properties">
|
|
|
|
|
<dt>payload<span class="property-type">object | 字符串 | 数组 | buffer</span></dt>
|
|
|
|
|
<dd>节点的行为由<code>msg.payload</code>的类型决定:
|
|
|
|
|
<ul>
|
|
|
|
|
<li><b>字符串</b>/<b>buffer</b> - 使用指定的字符(默认值:<code>\n</code>),缓冲区序列或固定长度将消息拆分。</li>
|
|
|
|
|
<li><b>数组</b> - 消息被拆分为单个数组元素或固定长度的数组。</li>
|
|
|
|
|
<li><b>object</b> - 将为对象的每个键/值对发送一条消息。</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<h3>输出</h3>
|
|
|
|
|
<dl class="message-properties">
|
|
|
|
|
<dt>parts<span class="property-type">object</span></dt>
|
|
|
|
|
<dd>此属性包含有关如何将消息与原始消息分开的信息。如果传递给<b>join</b>节点,则可以将序列重组为单个消息。该属性具有以下属性:
|
|
|
|
|
<ul>
|
|
|
|
|
<li><code>id</code> - 一组消息的标识符</li>
|
|
|
|
|
<li><code>index</code> - 组中的位置</li>
|
|
|
|
|
<li><code>count</code> - 如果已知组中的邮件总数。请参阅下面的“流媒体模式”</li>
|
|
|
|
|
<li><code>type</code> - 消息的类型-字符串/数组/对象/buffer</li>
|
|
|
|
|
<li><code>ch</code> - 对于字符串或buffer,用于将消息拆分为字符串或字节数组的数据</li>
|
|
|
|
|
<li><code>key</code> - 对于对象,创建此消息的属性的键。可以将节点配置为也将此值复制到另一个消息属性,例如<code>msg.topic</code></li>
|
|
|
|
|
<li><code>len</code> - 使用固定长度值拆分消息时,每段子消息的长度</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<h3>详细</h3>
|
|
|
|
|
<p>在使用<b>join</b>节点将序列重新组合为单个消息之前,推荐使用此节点来轻松地创建跨消息序列,执行通用操作的流。</p>
|
|
|
|
|
<p>它使用<code>msg.parts</code>属性跟踪序列的各个部分。</p>
|
|
|
|
|
<h4>流媒体模式</h4>
|
|
|
|
|
<p>该节点还可以用于重排消息流。例如,发送换行符终止命令的串行设备可能会传递一条消息,并在其末尾带有部分命令。 在“流模式”下,此节点将拆分一条消息并发送每个完整的段。如果末尾有部分片段,则该节点将保留该片段,并将其添加到收到的下一条消息之前。</p>
|
|
|
|
|
<p>在此模式下运行时,该节点将不会设置<code>msg.parts.count</code>属性,因为流中期望的消息数还是未知的。这意味着它不能在自动模式下与<b>join</b>节点一起使用。</p>
|
|
|
|
|
</script>
|
|
|
|
|
|
2023-07-10 10:51:52 +02:00
|
|
|
|
<script type="text/html" data-help-name="join">
|
2020-01-31 03:10:04 +01:00
|
|
|
|
<p>将消息序列合并为一条消息.</p>
|
|
|
|
|
<p>共有三种模式:</p>
|
|
|
|
|
<dl>
|
|
|
|
|
<dt>自动模式</dt>
|
|
|
|
|
<dd>与<b>split</b>节点配对时,它将自动将已被拆分的消息进行合并。</dd>
|
|
|
|
|
<dt>手动模式</dt>
|
|
|
|
|
<dd>手动地以各种方式合并消息序列。</dd>
|
|
|
|
|
<dt>列聚合模式</dt>
|
|
|
|
|
<dd>对消息列中的所有消息应用表达式以将其简化为单个消息。</dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<h3>输入</h3>
|
|
|
|
|
<dl class="message-properties">
|
|
|
|
|
<dt class="optional">parts<span class="property-type">object</span></dt>
|
|
|
|
|
<dd>使用自动模式时,所有的消息都应包含此属性。<b>split</b>节点会生成此属性,但也可以手动进行设置。该属性具有以下属性:
|
|
|
|
|
<ul>
|
|
|
|
|
<li><code>id</code> - 消息组的标识符</li>
|
|
|
|
|
<li><code>index</code> - 组中的位置</li>
|
|
|
|
|
<li><code>count</code> - 如果已知组中的邮件总数。请参阅下面的“流媒体模式”</li>
|
|
|
|
|
<li><code>type</code> - 消息的类型-字符串/数组/对象/buffer</li>
|
|
|
|
|
<li><code>ch</code> - 对于字符串或buffer,用于将消息拆分为字符串或字节数组的数据</li>
|
2023-07-10 10:51:52 +02:00
|
|
|
|
<li><code>key</code> - 对于对象,创建此消息的属性的键。可以将节点配置为也将此值复制到另一个消息属性</li>
|
2020-01-31 03:10:04 +01:00
|
|
|
|
<li><code>len</code> - 使用固定长度值拆分消息时,每段子消息的长度</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</dd>
|
|
|
|
|
<dt class="optional">complete</dt>
|
2023-07-10 10:51:52 +02:00
|
|
|
|
<dd>如果设置,节点将附加有效负载,然后以当前状态发送输出消息。
|
|
|
|
|
如果您不想附加有效负载,请将其从消息中删除。</dd>
|
|
|
|
|
<dt class="optional">reset</dt>
|
|
|
|
|
<dd>如果设置,节点将清除任何部分完成的消息并且不发送它。</dd>
|
|
|
|
|
<dt class="optional">restartTimeout</dt>
|
|
|
|
|
<dd>如果设置,并且节点配置了超时,则该超时将重新启动。</dd>
|
2020-01-31 03:10:04 +01:00
|
|
|
|
</dl>
|
|
|
|
|
<h3>详细</h3>
|
|
|
|
|
|
|
|
|
|
<h4>自动模式</h4>
|
|
|
|
|
<p>自动模式使用传入消息的<code>parts</code>属性来确定应如何连接序列。这使它可以自动逆转<b>split</b>节点的操作。</p>
|
|
|
|
|
|
|
|
|
|
<h4>手动模式</h4>
|
|
|
|
|
<p>设置为以手动模式时,该节点能以各种不同的方法来处理消息:</p>
|
|
|
|
|
<ul>
|
|
|
|
|
<li><b>字符串</b>或<b>缓冲区</b>-通过将每条消息的选定属性与指定的连接字符或缓冲区连接起来。</li>
|
|
|
|
|
<li><b>数组</b> - 通过将每个选定的属性或整个消息添加到输出数组</li>
|
|
|
|
|
<li><b>键/值对象</b> - 通过使用每个消息的属性来确定存储所需值的键。</li>
|
|
|
|
|
<li><b>merged object</b> - 通过将每个消息的属性合并到一个对象下。</li>
|
|
|
|
|
</ul>
|
|
|
|
|
<p>输出消息的其他属性都取自发送结果前的最后一条消息。</p>
|
|
|
|
|
<p>可以用<i>计数</i>来确定应接收多少条消息来进行合并。对于对象输出,可以设置为达到此计数后的每条后续消息都发送一条输出。</p>
|
|
|
|
|
<p>可以用<i>超时</i>来设置发送新消息之前的等待时间。</p>
|
rework of DE translation (#2806)
* started rework of translation to DE, added translation rules and dictionary
* reworks DE translation of JSONata /editor-client/locales/de/jsonata.json
* rework DE translation of editor-client
* moved /editor-client/locales/de/README.md to Wiki https://github.com/node-red/node-red/wiki/Design:-i18n-de
* Update README.md
* Update README.md
* Create README.md
* Create README.md
* fixed #2: "Sie müssen ..., um ... zu können"
* fixed #3
* fixed #4 and removed unnecessary spaces
* fixed #5
* fixed #6, added missing dots, removed unnecessary spaces
* fixed #7, #8, #9
* fixed #10, #11, #12, #13, #14, #15
* fixed #17, #18, 19
* fixed #19
* moved /editor-client/locales/de/dictionary.csv to https://github.com/heikokue/node-red-designs/blob/i18n-de/designs/i18n-de/dictionary.csv
* reworked DE translation of runtime
* fine-tuned DE translation of editor-client
* reworked DE translation of common nodes, fine-tuned editor-client
* reworked DE translation of all nodes, fine-tuned editor-client, intotips, jsonata & runtime
* small i18n fixes
2021-03-12 14:07:12 +01:00
|
|
|
|
<p>如果收到设置了<code>msg.complete</code>属性的消息时发送输出消息并重置消息列数。</p>
|
|
|
|
|
<p>如果收到设置了<code>msg.reset</code>属性的消息,则部分收到的消息将被删除而不发送,同时重置消息列数。</p>
|
2020-01-31 03:10:04 +01:00
|
|
|
|
|
|
|
|
|
<h4>列聚合模式</h4>
|
|
|
|
|
<p>选择列聚合模式时,将表达式应用于组成消息列的每条消息,并使用聚合值组成一条消息。</p>
|
|
|
|
|
|
|
|
|
|
<dl class="message-properties">
|
|
|
|
|
<dt>初始值</dt>
|
|
|
|
|
<dd>累积值的初始值(<code>$A</code>)。</dd>
|
|
|
|
|
<dt>聚合表达式</dt>
|
|
|
|
|
<dd>序列中的每个消息调用的JSONata表达式。结果将作为累加值传递到表达式的下一个调用。在表达式中,可以使用以下特殊变量:
|
|
|
|
|
<ul>
|
|
|
|
|
<li><code>$A</code>: 累计值 </li>
|
|
|
|
|
<li><code>$I</code>: 消息在序列中的索引</li>
|
|
|
|
|
<li><code>$N</code>: 序列中的消息数</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</dd>
|
|
|
|
|
<dt>最终调整式子</dt>
|
|
|
|
|
<dd>可选的JSONata表达式,在将聚合表达式应用于序列中的所有消息之后应用。在表达式中,可以使用以下特殊变量:
|
|
|
|
|
<ul>
|
|
|
|
|
<li><code>$A</code>: 累计值</li>
|
|
|
|
|
<li><code>$N</code>: 消息在序列中的索引</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</dd>
|
|
|
|
|
<p>默认情况下,按顺序从序列的第一条消息到最后一条消息应用聚合表达式。也可以选择以相反的顺序应用聚合表达式。</p>
|
2023-07-10 10:51:52 +02:00
|
|
|
|
<p>$N 是到达的消息数 - 即使它们是相同的。</p>
|
2020-01-31 03:10:04 +01:00
|
|
|
|
</dl>
|
|
|
|
|
<p><b>例子:</b>给定一系列数字值,以下设置将计算平均值:
|
|
|
|
|
<ul>
|
|
|
|
|
<li><b>聚合表达式</b>: <code>$A+payload</code></li>
|
|
|
|
|
<li><b>初始值</b>: <code>0</code></li>
|
|
|
|
|
<li><b>最终调整式</b>: <code>$A/$N</code></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</p>
|
|
|
|
|
<h4>储存讯息</h4>
|
|
|
|
|
<p>该节点将在内部缓存消息,以便跨序列工作。运行时设置<code>nodeMessageBufferMaxLength</code>可用于设定缓存的消息数。</p>
|
|
|
|
|
</script>
|