Merge branch 'master' into dev

This commit is contained in:
Nick O'Leary
2020-02-10 11:07:50 +00:00
70 changed files with 4667 additions and 136 deletions

View File

@@ -22,6 +22,7 @@
<option value="POST">POST</option>
<option value="PUT">PUT</option>
<option value="DELETE">DELETE</option>
<option value="HEAD">HEAD</option>
<option value="use" data-i18n="httpin.setby"></option>
</select>
</div>

View File

@@ -1,7 +1,7 @@
<script type="text/html" data-template-name="html">
<div class="form-row">
<label for="node-input-property"><i class="fa fa-ellipsis-h"></i> <span data-i18n="node-red:common.label.property"></span></label>
<label for="node-input-property"><i class="fa fa-ellipsis-h"></i> <span data-i18n="common.label.property"></span></label>
<input type="text" id="node-input-property" style="width:70%">
</div>
<div class="form-row">

View File

@@ -1,7 +1,7 @@
<script type="text/html" data-template-name="xml">
<div class="form-row">
<label for="node-input-property"><i class="fa fa-ellipsis-h"></i> <span data-i18n="node-red:common.label.property"></span></label>
<label for="node-input-property"><i class="fa fa-ellipsis-h"></i> <span data-i18n="common.label.property"></span></label>
<input type="text" id="node-input-property" style="width:70%;"/>
</div>
<div class="form-row">

View File

@@ -1,7 +1,7 @@
<script type="text/html" data-template-name="yaml">
<div class="form-row">
<label for="node-input-property"><i class="fa fa-ellipsis-h"></i> <span data-i18n="node-red:common.label.property"></span></label>
<label for="node-input-property"><i class="fa fa-ellipsis-h"></i> <span data-i18n="common.label.property"></span></label>
<input type="text" id="node-input-property" style="width:70%;"/>
</div>
<div class="form-row">

View File

@@ -53,8 +53,8 @@
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="node-red:common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]node-red:common.label.name">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
</div>
</script>

View File

@@ -60,8 +60,8 @@
</div>
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="node-red:common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]node-red:common.label.name">
<label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="common.label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]common.label.name">
</div>
</script>

View File

@@ -0,0 +1,34 @@
<!--
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/x-red" data-help-name="inject">
<p>手动或定期得将消息注入流中消息的有效荷载可以为多种类型包括字符串JavaScript对象或当前时间</p>
<h3>输出</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">various</span></dt>
<dd>指定的消息的有效荷载</dd>
<dt class="optional">topic <span class="property-type">字符串</span></dt>
<dd>可以在节点中配置的可选属性</dd>
</dl>
<h3>详细</h3>
<p>通过使用特定的有效荷载注入节点可以启动流默认有效荷载是当前时间的时间戳以毫秒为单位自1970年1月1日起</p>
<p>该节点还支持注入字符串数字布尔值JavaScript对象或流/全局上下文值</p>
<p>默认情况下节点可以通过在编辑器中单击节点按钮来手动触发同时也可以被设置为定期或按计划注入</p>
<p>另一个可选的设置是在每次启动流时注入一次</p>
<p>可以指定的最大<i>间隔</i>596/24 使scheduler</p>
<p><b>注意</b>:选项<i>“时间间隔” </i><i>特定时间 </i>使用了标准cron系统。这意味着因此“20分钟”并不表示在此之后20分钟而是每小时的20分钟40分钟。如果您希望设定为从现在开始的每20分钟那么请使用<i>“间隔” </i>选项</p>
<p><b>注意</b>: 使</p>
</script>

View File

@@ -0,0 +1,25 @@
<!--
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/x-red" data-help-name="debug">
<p>调试侧边栏选项卡和运行时日志中显示选定的消息属性 默认情况下它会显示<code>msg.payload</code>JSONata</p>
<h3>详细</h3>
<p>调试侧边栏会提供已发消息的结构化视图方便您查询消息的结构</p>
<p>JavaScript对象和数组可以根据需要来折叠或扩展缓冲区对象可以显示为原始数据也可以显示为字符串</p>
<p>对任意条消息调试侧边栏还会显示接收消息的时间发送消息的节点以及消息类型等信息单击源节点ID将在工作区中显示该节点</p>
<p>节点上的按钮可用于启用或禁用其输出建议禁用或删除所有未使用的调试节点</p>
<p>还可以通过配置节点将所有消息发送到运行时的日志或将简短的数据32个字符内在调试节点下的状态文本上显示</p>
</script>

View File

@@ -0,0 +1,24 @@
<!--
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/x-red" data-help-name="complete">
<p>当另一个节点完成对消息的处理时触发流</p>
<h3>详细</h3>
<p>如果一个节点通知运行时它已完成消息的处理该节点可用于触发第二个流</p>
<p>这个节点可以与没有输出端口的节点一起使用例如在使用电子邮件发送节点来发送邮件后触发一个流</p>
<p>此节点只能被设置为处理流中某个所选节点的事件与Catch节点不同您不能指定所有节点模式并以流中的所有节点为目标</p>
<p>并非所有节点都会触发此事件这取决于它们是否支持于Node-RED 1.0中引入的此功能</p>
</script>

View File

@@ -0,0 +1,36 @@
<!--
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/x-red" data-help-name="catch">
<p>捕获由同一标签页上的节点引发的错误</p>
<h3>输出</h3>
<dl class="message-properties">
<dt>error.message <span class="property-type">字符串</span></dt>
<dd>错误消息</dd>
<dt>error.source.id <span class="property-type">字符串</span></dt>
<dd>引发错误的节点的ID</dd>
<dt>error.source.type <span class="property-type">字符串</span></dt>
<dd>引发错误的节点的类型</dd>
<dt>error.source.name <span class="property-type">字符串</span></dt>
<dd>引发错误的节点的名称如果已设置</dd>
</dl>
<h3>详细</h3>
<p>如果节点在处理消息时抛出错误则流程通常会停止该节点可用于捕获那些错误并通过专用流程进行处理</p>
<p>默认情况下该节点将捕获同一标签页上任何节点抛出的错误或者它可以针对特定节点或配置为仅捕获另一个目标捕获节点尚未捕获的错误</p>
<p>当错误发生时所有匹配的catch节点都会收到错误消息</p>
<p>如果在子流中发送了错误则该错误将由子流中的任意捕获节点处理如果子流中不存在捕获节点则那错误将被传播到子流实例所在的标签页</p>
<p>如果消息已经具有<code>error</code><code>error</code><code>_error</code></p>
</script>

View File

@@ -0,0 +1,33 @@
<!--
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/x-red" data-help-name="status">
<p>获取在同一标签页上的其他节点的状态消息</p>
<h3>输出</h3>
<dl class="message-properties">
<dt>status.text <span class="property-type">字符串</span></dt>
<dd>状态文本</dd>
<dt>status.source.type <span class="property-type">字符串</span></dt>
<dd>报告状态的节点的类型</dd>
<dt>status.source.id <span class="property-type">字符串</span></dt>
<dd>报告状态的节点的ID</dd>
<dt>status.source.name <span class="property-type">字符串</span></dt>
<dd>报告状态的节点的名称如果已设置</dd>
</dl>
<h3>详细</h3>
<p>该节点不包含<code>有效荷载</code></p>
<p>默认情况下节点会获取同一工作空间标签页上报告所有节点的状态可以通过配置来设定目标节点</p>
</script>

View File

@@ -0,0 +1,31 @@
<!--
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/x-red" data-help-name="link in">
<p>在流之间创建虚拟连线</p>
<h3>详细</h3>
<p>该节点可以连接到任何标签页上存在的任何<code>link out</code></p>
<p>仅当选择链接节点时才会显示链接节点之间的链接如果有指向另一个选项卡的链接则显示一个虚拟节点单击该虚拟节点将带您到相应的选项卡</p>
<p><b>注意</b></p>
</script>
<script type="text/x-red" data-help-name="link out">
<p>在流之间创建虚拟连线</p>
<h3>详细</h3>
<p>该节点可以连接到任何标签页上存在的任何<code>link in</code></p>
<p>仅当选择链接节点时才会显示链接节点之间的链接如果有指向另一个选项卡的链接则显示一个虚拟节点单击该虚拟节点将带您到相应的选项卡</p>
<p><b>注意</b></p>
</script>

View File

@@ -0,0 +1,21 @@
<!--
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/x-red" data-help-name="comment">
<p>可用于向流添加注释的节点</p>
<h3>详细</h3>
<p>编辑面板接受Markdown语法输入的文本将在信息侧面板中显示</p>
</script>

View File

@@ -0,0 +1,24 @@
<!--
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/x-red" data-help-name="unknown">
<p>您安装的Node-RED无法识别该节点的类型</p>
<h3>详细</h3>
<p><i>如果在此状态下部署节点其配置会被保存但是在安装缺少的类型之前流不会开始</i></p>
<p>使用<code> Menu-Manage Palette </code>使<b>npm install &lt;module&gt;</b>Node-Red</p>
<p>另一种可能是您已经安装了此节点类型但是缺少必须的依赖项您应检查Node-RED的启动日志中是否有与缺少节点有关的错误消息</p>
<p>以上方法都不适用时您可以联系该流的作者以获取缺少的节点类型的副本</p>
</script>

View File

@@ -0,0 +1,51 @@
<!--
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/x-red" data-help-name="function">
<p>定义对接收到的消息进行处理的JavaScript代码函数的主体</p>
<p>输入消息在名为<code>msg</code>JavaScript</p>
<p>通常<code>msg</code><code>msg.payload</code></p>
<p>该函数一般会返回一个消息对象或多个消息对象但也可以为了停止流而什么都不返回</p>
<h3>详细</h3>
<p>请参见<a target="_blank" href="http://nodered.org/docs/writing-functions.html">在线文档</a></p>
<h4>传送消息</h4>
<p>要将消息传递到流中的下一个节点请返回消息或调用<code>node.send(messages)</code></p>
<p>它将返回/send:</p>
<ul>
<li>单个消息对象 - 传递给连接到第一个输出的节点</li>
<li>消息对象数组传递给连接到相应输出的节点</li>
</ul>
<p>如果数组元素是数组则将多个消息发送到相应的输出</p>
<p>无论return方法是单个值还是数组元素如果返回值为null则不会发送任何消息</p>
<h4>日志输出和错误处理</h4>
<p>使用以下功能输出日志信息和输出错误</p>
<ul>
<li><code>node.log("Log message")</code></li>
<li><code>node.warn("Warning")</code></li>
<li><code>node.error("Error")</code></li>
</ul>
</p>
<p>使用catch节点可以进行错误处理 要由catch节点处理请将<code>msg</code><code>node.error</code></p>
<pre>node.error("Error",msg);</pre>
<h4>访问节点信息</h4>
<p>您可以使用以下属性来在代码中引用节点ID和名称</p>
<ul>
<li><code>node.id</code> - ID</li>
<li><code>node.name</code> - </li>
</ul>
<h4>使用环境变量</h4>
<p>环境变量可以通过<code>env.get("MY_ENV_VAR")</code>访</p>
</script>

View File

@@ -0,0 +1,37 @@
<!--
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/x-red" data-help-name="switch">
<p>按属性值来分配消息的传送路线</p>
<h3>详细</h3>
<p>根据接收到的消息评估指定的规则然后将消息发送到与匹配的规则相对应的输出端口</p>
<p>可以将节点设置为一旦发现一个匹配的规则则停止后续的匹配</p>
<p>对于评估规则可以使用消息属性流上下文/全局上下文属性环境变量和JSONata表达式的评估结果</p>
<h4>规则</h4>
<p>有四种规则</p>
<ol>
<li><b></b></li>
<li><b>顺序</b></li>
<li><b>JSONata表达式</b></li>
<li><b>其他</b></li>
</ol>
<h4>注释</h4>
<p><code>is true/false</code><code>is null</code> </p>
<p><code>is empty</code><code>null</code><code>undefined</code></p>
<h4>处理消息序列</h4>
<p>默认情况下节点不会修改<code>msg.parts</code></p>
<p>可以启用<b>重建消息序列</b><code>nodeMessageBufferMaxLength</code></p>
</script>

View File

@@ -0,0 +1,33 @@
<!--
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/x-red" data-help-name="change">
<p>设置更改删除或移动消息流上下文或全局上下文的属性</p>
<p>如果指定了多个规则则将按定义的顺序来应用它们</p>
<h3>详细</h3>
<p>可用的操作有</p>
<dl class="message-properties">
<dt>设置</dt>
<dd>设置一个属性该值可以是多种不同类型也可以从现有消息或上下文属性中获取</dd>
<dt>置换</dt>
<dd>搜索并替换属性 如果启用了正则表达式则可以为replace with属性指定捕获组例如<code>$1</code> </dd>
<dt>删除</dt>
<dd>删除一个属性</dd>
<dt>移动</dt>
<dd>移动或者重命名一个属性</dd>
</dl>
<p>类型"expression"使用<a href="http://jsonata.org/" target="_new">JSONata</a></p>
</script>

View File

@@ -0,0 +1,40 @@
<!--
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/x-red" data-help-name="range">
<p>将数值映射为另一个区间的数值</p>
<h3>输入</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">数值</span></dt>
<dd>有效荷载<i>一定</i>. </dd>
</dl>
<h3>输出</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">数值</span></dt>
<dd>被映射到新区间的数值</dd>
</dl>
<h3>详细</h3>
<p>该节点将线性缩放所接收到的数值在默认情况下结果不限于节点中定义的范围</p>
<p><i>缩放并限制到目标范围</i></p>
<p><i>在目标范围内缩放并折叠</i></p>
<p>例如输入0-10映射到0-100</p>
<table style="outline-width:#888 solid thin">
<tr><th width="80px">模式</th><th width="80px"></th><th width="80px"></th></tr>
<tr><td><center>scale</center></td><td><center>12</center></td><td><center>120</center></td></tr>
<tr><td><center>limit</center></td><td><center>12</center></td><td><center>100</center></td></tr>
<tr><td><center>wrap</center></td><td><center>12</center></td><td><center>20</center></td></tr>
</table>
</script>

View File

@@ -0,0 +1,46 @@
<!--
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/x-red" data-help-name="template">
<p>根据提供的模板设置属性</p>
<h3>输入</h3>
<dl class="message-properties">
<dt>msg <span class="property-type">object</span></dt>
<dd>一个msg对象其中包含着用于填充模板的信息</dd>
<dt class="optional">template <span class="property-type">string</span></dt>
<dd><code>msg.payload</code>msg</dd>
</dl>
<h3>Outputs</h3>
<dl class="message-properties">
<dt>msg <span class="property-type">object</span></dt>
<dd>由来自传入msg的属性来填充已配置的模板后输出的带有属性的msg</dd>
</dl>
<h3>详细</h3>
<p>默认情况下使用<i><a href="http://mustache.github.io/mustache.5.html" target="_blank">mustache</a></i>格式如有需要也可以切换其他格式</p>
<p>例如:
<pre>Hello {{payload.name}}. Today is {{date}}</pre>
<p>receives a message containing:
<pre>{
date: "Monday",
payload: {
name: "Fred"
}
}</pre>
<p>输出的消息将会是:
<pre>Hello Fred. Today is Monday</pre>
<p>也可以使用流上下文或全局上下文中的属性<code>{{flow.name}}</code><code>{{global.name}}</code><code>store</code>使<code>{{flow[store].name}}</code><code>{{global[store].name}}</code>
<p><b>注意</b>默认情况下,<i>mustache</i>将在其替换的值中转义任何非字母数字或HTML实体为了防止这种情况请使用<code>{{{triple}}}</code>
</script>

View File

@@ -0,0 +1,32 @@
<!--
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/x-red" data-help-name="delay">
<p>对通过节点的消息进行延迟发送或限制</p>
<h3>输入</h3>
<dl class="message-properties">
<dt class="optional">delay <span class="property-type">数值</span></dt>
<dd>设置要应用于消息的延迟以毫秒为单位仅当节点配置为允许消息去覆盖配置的默认延迟间隔时此选项才适用</dd>
<dt class="optional">reset</dt>
<dd>如果接收到的消息将此属性设置为任何值则将清空该节点保留的所有的未发送消息</dd>
<dt class="optional">flush</dt>
<dd>如果接收到的消息的此属性设置为任何值则将立即发送该节点保留的所有未发送消息</dd>
</dl>
<h3>详细</h3>
<p>当配置为延迟发送消息时延迟间隔可以是一个固定值一个范围内的随机值或为每个消息动态设置</p>
<p>当配置为对消息进行限制时它们的传递将分散在配置的时间段内状态显示队列中当前的消息数可以选择在中间消息到达时丢弃它们</p>
<p>速率限制可以应用于所有消息也可以根据<code>msg.topic</code></p>
</script>

View File

@@ -0,0 +1,33 @@
<!--
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/x-red" data-help-name="trigger">
<p>触发后将会发送一条消息如果被拓展或重置则可以选择发送第二条消息</p>
<h3>输入</h3>
<dl class="message-properties">
<dt class="optional">reset</dt>
<dd>如果收到带有此属性的消息则将清除当前正在进行的任何超时或重复且不会触发任何消息</dd>
</dl>
<h3>详细</h3>
<p>该节点可用于在流中创建一个超时 默认情况下当它收到一条消息时它将发送一条带有<code>1</code>250<code>0</code>使Raspberry Pi GPIOLED</p>
<p>可以将发送的每个消息的有效荷载配置为各种值包括不发送任何内容的选项例如将初始消息设置为<i>nothing</i></p>
<p>如果设置为<i>字符串</i>类型,则该节点支持<i>mustache</i>模板语法</p>
<p>如果节点收到具有<code>reset</code><code></code></p>
<p>可以将节点配置为以固定的时间间隔重新发送消息直到被收到的消息重置为止</p>
<p>可选可以将节点配置为将带有<code>msg.topic</code></p>
</script>

View File

@@ -0,0 +1,74 @@
<!--
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/x-red" data-help-name="exec">
<p>运行系统命令并返回其输出</p>
<p>可以将节点配置为等待命令完成或者在命令生成时发送其输出</p>
<p>运行的命令可以在节点中配置也可以由收到的消息提供</p>
<h3>输入</h3>
<dl class="message-properties">
<dt class="optional">payload <span class="property-type">字符串</span></dt>
<dd>如果这样配置则将被附加到执行命令中</dd>
<dt class="optional">kill <span class="property-type">字符串</span></dt>
<dd>指定发送到现有的exec节点进程的kill信号类型</dd>
<dt class="optional">pid <span class="property-type">数值|字符串</span></dt>
<dd>要杀死的现有exec节点进程的进程ID</dd>
</dl>
<h3>输出</h3>
<ol class="node-ports">
<li>标准输出(stdout)
<dl class="message-properties">
<dt>payload <span class="property-type">字符串</span></dt>
<dd>命令的标准输出</dd>
</dl>
<dl class="message-properties">
<dt>rc <span class="property-type">object</span></dt>
<dd>仅执行模式一个返回代码对象的副本在端口3上也可用</dd>
</dl>
</li>
<li>标准error输出(stderr)
<dl class="message-properties">
<dt>payload <span class="property-type">字符串</span></dt>
<dd>命令的标准错误输出</dd>
</dl>
<dl class="message-properties">
<dt>rc <span class="property-type">object</span></dt>
<dd>仅执行模式一个返回代码对象的副本在端口3上也可用</dd>
</dl>
</li>
<li>返回代码
<dl class="message-properties">
<dt>payload <span class="property-type">object</span></dt>
<dd>一个包含返回代码以及<code>message</code><code>signal</code></dd>
</dl>
</li>
</ol>
<h3>详细</h3>
<p>默认情况下使用<code>exec</code><code>{code0}</code></p>
<p>可选可以选择使用<code>spawn</code>stdoutstderr<code>{code0}</code></p>
<p>错误可能会在第三个端口<code>msg.payload</code><code>message</code><code>signal</code></p>
<p>运行的命令是在节点内定义的带有附加<code>msg.payload</code></p>
<p>带空格的命令或参数应该用引号引起来<code>这是一个参数</code></p>
<p>返回的<code>有效荷载</code>通常是<i>字符串</i>类型除非检测到非UTF8字符在这种情况下它会是<i>buffer</i></p>
<p>节点处于活动状态时该节点的状态图标和PID将可见对此更改可以通过<code>Status</code></p>
<h4>杀死进程</h4>
<p>发送<code>msg.kill</code><code>msg.kill</code><code>SIGINT</code><code>SIGQUIT</code><code>SIGHUP</code><code>SIGTERM</code></p>
<p>如果节点有多个进程在运行则还必须设置<code>msg.pid</code>PID</p>
<p>如果<code>超时</code></p>
<p>提示如果运行Python应用程序则可能需要使用<code>-u</code></p>
</script>

View File

@@ -6,7 +6,9 @@
"name": "名称",
"username": "用户名",
"password": "密码",
"property": "属性"
"property": "属性",
"selectNodes": "选择节点...",
"expand": "扩展"
},
"status": {
"connected": "已连接",
@@ -35,7 +37,22 @@
"stopped": "停止",
"failed": "注入失败: __error__",
"label": {
"repeat": "重复"
"repeat": "重复",
"flow": "流上下午",
"global": "全局上下文",
"str": "字符串",
"num": "数值",
"bool": "布尔值",
"json": "JSON对象",
"bin": "buffer",
"date": "时间戳",
"env": "环境变量",
"object": "对象",
"string": "字符串",
"boolean": "布尔值",
"number": "数值",
"Array": "数组",
"invalid": "无效的JSON对象"
},
"timestamp": "时间戳",
"none": "无",
@@ -70,15 +87,13 @@
}
},
"catch": {
"catch": "监测所有节点",
"catchNodes": "监测__number__个节点",
"catch": "捕获:所有节点",
"catchNodes": "捕获:__number__个节点",
"catchUncaught": "捕获:未捕获",
"label": {
"source": "监测范围",
"node": "节点",
"type": "类型",
"source": "捕获范围",
"selectAll": "全选",
"sortByLabel": "按名称排序",
"sortByType": "按类型排序"
"uncaught": "忽略其他捕获节点处理的错误"
},
"scope": {
"all": "所有节点",
@@ -90,10 +105,6 @@
"statusNodes": "报告__number__个节点状态",
"label": {
"source": "报告状态范围",
"node": "节点",
"type": "类型",
"selectAll": "全选",
"sortByLabel": "按名称排序",
"sortByType": "按类型排序"
},
"scope": {
@@ -101,8 +112,13 @@
"selected": "指定节点"
}
},
"complete": {
"completeNodes": "完成: __number__个节点"
},
"debug": {
"output": "输出",
"none": "None",
"invalid-exp": "无效的JSONata表达式: __error__",
"msgprop": "信息属性",
"msgobj": "完整信息",
"to": "目标",
@@ -124,7 +140,11 @@
"filterCurrent": "当前流程",
"debugNodes": "调试节点",
"clearLog": "清空日志",
"openWindow": "在新窗口打开"
"filterLog": "过滤日志",
"openWindow": "在新窗口打开",
"copyPath": "复制路径",
"copyPayload": "复制值",
"pinPath": "固定展开"
},
"messageMenu": {
"collapseAll": "折叠所有路径",
@@ -146,26 +166,33 @@
"key": "私钥",
"passphrase": "密码",
"ca": "CA证书",
"verify-server-cert":"验证服务器证书"
"verify-server-cert":"验证服务器证书",
"servername": "服务器名"
},
"placeholder": {
"cert":"证书路径 (PEM 格式)",
"key":"私钥路径 (PEM 格式)",
"ca":"CA证书路径 (PEM 格式)",
"passphrase":"私钥密码 (可选)"
"passphrase":"私钥密码 (可选)",
"servername":"用于SNI"
},
"error": {
"missing-file": "未提供证书/密钥文件"
}
},
"exec": {
"exec": "exec",
"spawn": "spawn",
"label": {
"command": "命令",
"append": "追加",
"timeout": "超时",
"timeoutplace": "可选填",
"return": "输出",
"seconds": "秒"
"seconds": "秒",
"stdout": "标准输出",
"stderr": "标准错误输出",
"retcode": "返回码"
},
"placeholder": {
"extraparams": "额外的输入参数"
@@ -177,6 +204,7 @@
"oldrc": "使用旧式输出 (兼容模式)"
},
"function": {
"function": "函数",
"label": {
"function": "函数",
"outputs": "输出"
@@ -187,6 +215,7 @@
}
},
"template": {
"template": "模板",
"label": {
"template": "模版",
"property": "属性",
@@ -199,7 +228,7 @@
"yaml": "YAML",
"none": "无"
},
"templatevalue": "This is the payload: {{payload}} !"
"templatevalue": "这是有效载荷: {{payload}} !"
},
"delay": {
"action": "行为设置",
@@ -272,6 +301,9 @@
"wait-reset": "等待被重置",
"wait-for": "等待",
"wait-loop": "周期性重发",
"for": "处理",
"bytopics": "每个msg.topic",
"alltopics": "所有消息",
"duration": {
"ms": "毫秒",
"s": "秒",
@@ -290,6 +322,7 @@
}
},
"comment": {
"comment": "注释"
},
"unknown": {
"label": {
@@ -300,9 +333,10 @@
"mqtt": {
"label": {
"broker": "服务端",
"example": "e.g. localhost",
"example": "比如:本地主机",
"output": "输出",
"qos": "QoS",
"retain": "保持",
"clientid": "客户端ID",
"port": "端口",
"keepalive": "Keepalive计时(秒)",
@@ -312,17 +346,22 @@
"verify-server-cert":"验证服务器证书",
"compatmode": "使用旧式MQTT 3.1支持"
},
"sections-label":{
"birth-message": "连接时发送的消息(出生消息)",
"will-message":"意外断开连接时的发送消息Will消息",
"close-message":"断开连接前发送的消息(关闭消息)"
},
"tabs-label": {
"connection": "连接",
"security": "安全",
"will": "Will信息",
"birth": "Birth信息"
"messages": "消息"
},
"placeholder": {
"clientid": "留白则自动生成",
"clientid-nonclean":"如非新会话必须设置客户端ID",
"will-topic": "留白将禁止Will信息",
"birth-topic": "留白将禁止Birth信息"
"birth-topic": "留白将禁止Birth信息",
"close-topic": "留白以禁用关闭消息"
},
"state": {
"connected": "已连接到服务端: __broker__",
@@ -333,7 +372,9 @@
"output": {
"buffer": "Buffer",
"string": "字符串",
"base64": "Base64编码字符串"
"base64": "Base64编码字符串",
"auto": "自动检测 (字符串或buffer)",
"json": "解析的JSON对象"
},
"true": "是",
"false": "否",
@@ -342,7 +383,9 @@
"not-defined": "主题未设置",
"missing-config": "未设置服务端",
"invalid-topic": "主题无效",
"nonclean-missingclientid": "客户端ID未设定使用新会话"
"nonclean-missingclientid": "客户端ID未设定使用新会话",
"invalid-json-string": "无效的JSON字符串",
"invalid-json-parse": "无法解析JSON字符串"
}
},
"httpin": {
@@ -353,13 +396,27 @@
"return": "返回",
"upload": "接受文件上传?",
"status": "状态码",
"headers": "Header",
"other": "其他"
"headers": "",
"other": "其他",
"paytoqs" : "将msg.payload附加为查询字符串参数",
"utf8String": "UTF8格式的字符串",
"binaryBuffer": "二进制buffer",
"jsonObject": "解析的JSON对象",
"authType": "类型",
"bearerToken": "Token"
},
"setby": "- 用 msg.method 设定 -",
"basicauth": "基本认证",
"use-tls": "使用安全连接 (SSL/TLS) ",
"tls-config":"TLS 设置",
"basic": "基本认证",
"digest": "摘要认证",
"bearer": "bearer认证",
"use-proxy": "使用代理服务器",
"persist": "对连接启用keep-alive",
"proxy-config": "代理服务器设置",
"use-proxyauth": "使用代理身份验证",
"noproxy-hosts": "代理例外",
"utf8": "UTF-8 字符串",
"binary": "二进制数据",
"json": "JSON对象",
@@ -376,7 +433,10 @@
"json-error": "JSON 解析错误",
"no-url": "未设定 URL",
"deprecated-call":"__method__方法已弃用",
"invalid-transport":"非HTTP传输请求"
"invalid-transport":"非HTTP传输请求",
"timeout-isnan": "超时值不是有效数字,忽略",
"timeout-isnegative": "超时值为负,忽略",
"invalid-payload": "无效的有效载荷"
},
"status": {
"requesting": "请求中"
@@ -399,13 +459,19 @@
"url1": "URL 应该使用ws:&#47;&#47;或者wss:&#47;&#47;方案并指向现有的websocket侦听器.",
"url2": "默认情况下,<code>payload</code> 将包含要发送或从Websocket接收的数据。可以将客户端配置为以JSON格式的字符串发送或接收整个消息对象."
},
"status": {
"connected": "连接数 __count__",
"connected_plural": "连接数 __count__"
},
"errors": {
"connect-error": "ws连接发生了错误: ",
"send-error": "发送时发生了错误: ",
"missing-conf": "未设置服务器"
"missing-conf": "未设置服务器",
"duplicate-path": "同一路径上不能有两个WebSocket侦听器: __path__"
}
},
"watch": {
"watch": "watch",
"label": {
"files": "文件",
"recursive": "递归所有子文件夹"
@@ -421,7 +487,7 @@
"output": "输出",
"port": "端口",
"host": "主机地址",
"payload": "有效载荷",
"payload": "有效载荷",
"delimited": "分隔符号",
"close-connection": "是否在成功发送每条信息后断开连接?",
"decode-base64": "用 Base64 解码信息?",
@@ -480,7 +546,6 @@
"output": "输出",
"group": "组",
"interface": "本地IP",
"interfaceprompt": "(可选)本地 IP 绑定到",
"send": "发送一个",
"toport": "到端口",
"address": "地址",
@@ -488,6 +553,7 @@
},
"placeholder": {
"interface": "可选eth0的IP地址",
"interfaceprompt": "(可选) 要绑定的本地接口或地址",
"address": "目标IP地址"
},
"udpmsgs": "udp信息",
@@ -529,15 +595,18 @@
"ip-notset": "udp: IP地址未设定",
"port-notset": "udp: 端口未设定",
"port-invalid": "udp: 无效端口号码",
"alreadyused": "udp: 端口已被占用"
"alreadyused": "udp: 端口已被占用",
"ifnotfound": "udp: 接口 __iface__ 未发现"
}
},
"switch": {
"switch": "switch",
"label": {
"property": "属性",
"rule": "规则",
"repair" : "重建信息队列"
},
"previous": "先前值",
"and": "与",
"checkall": "全选所有规则",
"stopfirst": "接受第一条匹配信息后停止",
@@ -550,11 +619,15 @@
"false":"为假",
"null":"为空",
"nnull":"非空",
"head":"head",
"tail":"tail",
"index":"index between",
"istype": "类型是",
"empty": "为空",
"nempty": "非空",
"head":"头",
"tail":"尾",
"index":"索引在..中间",
"exp":"JSONata表达式",
"else":"除此以外"
"else":"除此以外",
"hask": "拥有键"
},
"errors": {
"invalid-expr": "无效的JSONata表达式: __error__",
@@ -588,6 +661,7 @@
}
},
"range": {
"range": "range",
"label": {
"action": "操作",
"inputrange": "映射输入数据",
@@ -623,7 +697,8 @@
"firstrow": "第一行包含列名",
"output": "输出",
"includerow": "包含列名行",
"newline": "换行符"
"newline": "换行符",
"usestrings": "parse numerical values"
},
"placeholder": {
"columns": "用逗号分割列名"
@@ -654,7 +729,8 @@
"html": {
"label": {
"select": "选取项",
"output": "输出"
"output": "输出",
"in": "in"
},
"output": {
"html": "选定元素的html内容",
@@ -670,7 +746,9 @@
"errors": {
"dropped-object": "忽略非对象格式的有效负载",
"dropped": "忽略不支持格式的有效负载类型",
"dropped-error": "转换有效负载失败"
"dropped-error": "转换有效负载失败",
"schema-error": "JSON架构错误",
"schema-error-compile": "JSON架构错误: 未能编译架构"
},
"label": {
"o2j": "对象至JSON",
@@ -713,7 +791,10 @@
"breaklines": "分拆成行",
"filelabel": "文件",
"sendError": "发生错误时发送消息(传统模式)",
"deletelabel": "删除 __file__"
"deletelabel": "删除 __file__",
"encoding": "编码",
"utf8String": "UTF8字符串",
"binaryBuffer": "二进制buffer"
},
"action": {
"append": "追加至文件",
@@ -731,6 +812,21 @@
"deletedfile": "删除文件: __file__",
"appendedfile": "追加至文件: __file__"
},
"encoding": {
"none": "默认",
"native": "Native",
"unicode": "Unicode",
"japanese": "日本",
"chinese": "中国",
"korean": "韩国",
"taiwan": "台湾/香港",
"windows": "Windows代码页",
"iso": "ISO代码页",
"ibm": "IBM代码页",
"mac": "Mac代码页",
"koi8": "KOI8代码页",
"misc": "其它"
},
"errors": {
"nofilename": "未指定文件名",
"invaliddelete": "警告:无效删除。请在配置对话框中使用特定的删除选项",
@@ -742,6 +838,7 @@
"tip": "提示: 文件名应该是绝对路径否则它将相对于Node-RED进程的工作目录。"
},
"split": {
"split": "split",
"intro":"基于以下类型拆分<code>msg.payload</code>:",
"object":"<b>对象</b>",
"objectSend":"每个键值对作为单个消息发送",
@@ -753,6 +850,7 @@
"addname":" 复制键到 "
},
"join":{
"join": "join",
"mode":{
"mode":"模式",
"auto":"自动",
@@ -761,6 +859,7 @@
"custom":"手动"
},
"combine":"合并每个",
"completeMessage": "完整的消息",
"create":"输出为",
"type":{
"string":"字符串",
@@ -799,6 +898,7 @@
}
},
"sort" : {
"sort": "sort",
"target" : "排序属性",
"seq" : "信息队列",
"key" : "键值",
@@ -812,6 +912,7 @@
"clear" : "清空sort节点中的待定信息"
},
"batch" : {
"batch": "batch",
"mode": {
"label" : "模式",
"num-msgs" : "按指定数量分组",

View File

@@ -0,0 +1,19 @@
<!--
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/x-red" data-help-name="tls-config">
<p>TLS连接的配置选项</p>
</script>

View File

@@ -0,0 +1,22 @@
<!--
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/x-red" data-help-name="http proxy">
<p>HTTP代理的配置选项</p>
<h3>详细</h3>
<p>访问代理例外列表中的主机时将不使用任何代理</p>
</script>

View File

@@ -0,0 +1,71 @@
<!--
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/x-red" data-help-name="mqtt in">
<p>连接到MQTT代理并订阅来自指定主题的消息</p>
<h3>输出</h3>
<dl class="message-properties">
<dt>payload <span class="property-type">字符串 | buffer</span></dt>
<dd>如果不是二进制buffer的话就是字符串</dd>
<dt>topic <span class="property-type">字符串</span></dt>
<dd>MQTT主题使用<code>/</code></dd>
<dt>qos <span class="property-type">数值</span> </dt>
<dd>QoS服务质量0, 最多一次 1, 最少一次 2, 只一次</dd>
<dt>retain <span class="property-type">布尔值</span></dt>
<dd>值为true时表示消息已保留且可能是旧的</dd>
</dl>
<h3>详细</h3>
<p>订阅主题可以包括MQTT通配符+一个级别多个级别</p>
<p>使用该节点您首先需要建立与MQTT代理的连接通过单击铅笔图标来进行配置</p>
<p>如有需要几个MQTT节点输入或输出可以共享相同的代理连接</p>
</script>
<script type="text/x-red" data-help-name="mqtt out">
<p>连接到MQTT代理并发布消息</p>
<h3>输入</h3>
<dl class="message-properties">
<dt>payload <span class="property-type">字符串 | buffer</span></dt>
<dd>要发布的有效负载如果未设置此属性则不会发送任何消息要发送空白消息请将此属性设置为空字符串</dd>
<dt class="optional">topic <span class="property-type">字符串</span></dt>
<dd>要发布的MQTT主题</dd>
<dt class="optional">qos <span class="property-type">number</span></dt>
<dd>QoS服务质量0, 最多一次 1, 最少一次 2, 只一次默认值为0</dd>
<dt class="optional">retain <span class="property-type">布尔值</span></dt>
<dd>设置为<code>true</code><code>false</code></dd>
</dl>
<h3>详细</h3>
<p><code>msg.payload</code>ObjectJSONbuffer</p>
<p>可以在节点中配置所使用的主题或者如果留为空白则可以通过<code>msg.topic</code></p>
<p>同样可以在节点中配置QoS和保留值或者如果保留空白则分别由<code>msg.qos</code><code>msg.retain</code></p>
<p>该节点需要与要配置的MQTT代理的连接通过单击铅笔图标进行配置</p>
<p>如果需要几个MQTT节点输入或输出可以共享相同的代理连接</p>
</script>
<script type="text/x-red" data-help-name="mqtt-broker">
<p>与MQTT代理的连接设置</p>
<p>创建与代理的连接设置可以在<code>MQTT In</code><code>MQTT Out</code></p>
<p>如果未为该节点设置客户端ID并且设置了会话初始化则将生成一个随机客户端ID设置客户端ID时请确保它对于连接目标处的代理是唯一的</p>
<h4>Birth Message</h4>
<p>建立连接后发布在以配置主题中的消息</p>
<h4>Close Message</h4>
<p>在连接正常结束之前重新部署或者关闭了节点时发布在以配置主题中的消息</p>
<h4>Will Message</h4>
<p>当节点意外丢失连接时由代理发布的消息</p>
<h4>WebSockets</h4>
<p>可以将节点配置成使用WebSocket连接使用WebSocket时请在服务器字段中以完整格式描述连接目标的URI 例如</p>
<pre>ws://example.com:4000/mqtt</pre>
</script>

View File

@@ -0,0 +1,81 @@
<!--
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/x-red" data-help-name="http in">
<p>创建用于创建Web服务的HTTP端点</p>
<h3>输出</h3>
<dl class="message-properties">
<dt>payload</dt>
<dd>GET请求包含任何查询字符串参数的对象或者包含HTTP请求正文</dd>
<dt>req<span class="property-type">object</span></dt>
<dd>HTTP请求对象该对象包含有关请求信息的多个属性
<ul>
<li><code>body</code> - </li>
<li><code>headers</code> - HTTP</li>
<li><code>query</code> - </li>
<li><code>params</code> - </li>
<li><code>cookies</code> - cookie</li>
<li><code>files</code> - </li>
</ul>
</dd>
<dt>res<span class="property-type">object</span></dt>
<dd>HTTP响应对象此属性不应直接使用<code>HTTP Response</code></dd>
</dl>
<h3>详细</h3>
<p>节点将在配置的路径上监听特定类型的请求路径可以完全指定例如<code>/user</code><code>/user/:name</code> 使<code>msg.req.params</code>访</p>
<p>对于包含正文的请求例如POST或PUT请求的内容将作为<code>msg.payload</code></p>
<p>如果可以确定请求的内容类型则正文将被解析为任何适当的类型例如<code>application/json</code>JavaScript</p>
<p><b>注意</b>HTTP</p>
</script>
<script type="text/x-red" data-help-name="http response">
<p>将响应发送回从HTTP输入节点接收的请求</p>
<h3>输入</h3>
<dl class="message-properties">
<dt>payload <span class="property-type">string</span></dt>
<dd>响应的正文</dd>
<dt class="optional">statusCode <span class="property-type">数值</span></dt>
<dd>如果设置则用作响应状态代码默认值200</dd>
<dt class="optional">headers <span class="property-type">object</span></dt>
<dd>如果设置则提供HTTP头以包含在响应中</dd>
<dt class="optional">cookies <span class="property-type">object</span></dt>
<dd>如果设置则可用于设置或删除cookie</dd>
</dl>
<h3>详细</h3>
<p>还可以在节点本身内设置<code>statusCode</code><code>headers</code>message</p>
<h4>Cookie处理</h4>
<p><code>cookies</code>/使cookieoptions<p>
<p>下面的示例设置两个cookie-一个名为<code>name</code><code>nick</code><code>session</code><code>1234</code>15</p>
<pre>
msg.cookies = {
name: 'nick',
session: {
value: '1234',
maxAge: 900000
}
}</pre>
<p>有效选项包括</p>
<ul>
<li><code>domain</code> - () Cookie</li>
<li><code>expires</code> - () GMT0cookie</li>
<li><code>maxAge</code> - () </li>
<li><code>path</code> - (字符串) Cookie的路径。默认为/</li>
<li><code>value</code> - () Cookie使</li>
</ul>
<p>要删除Cookie请将其<code>value</code><code>null</code></p>
</script>

View File

@@ -0,0 +1,78 @@
<!--
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/x-red" data-help-name="http request">
<p>发送HTTP请求并返回响应</p>
<h3>输入</h3>
<dl class="message-properties">
<dt class="optional">url <span class="property-type">字符串</span></dt>
<dd>如果未在节点中配置则此可选属性设置请求的url</dd>
<dt class="optional">method <span class="property-type">字符串</span></dt>
<dd>如果未在节点中配置则此可选属性设置请求的HTTP方法必须是<code>GET</code>,<code>PUT</code>,<code>POST</code>,<code>PATCH</code><code>DELETE</code></dd>
<dt class="optional">headers <span class="property-type">object</span></dt>
<dd>设置请求的HTTP头</dd>
<dt class="optional">cookies <span class="property-type">object</span></dt>
<dd>如果设置则可用于发送带有请求的cookie</dd>
<dt class="optional">payload</dt>
<dd>发送为请求的正文</dd>
<dt class="optional">rejectUnauthorized</dt>
<dd>如果设置为<code>false</code>使https</dd>
<dt class="optional">followRedirects</dt>
<dd>如果设置为<code>false</code>HTTP 301<code>true</code></dd>
<dt class="optional">requestTimeout</dt>
<dd>如果设置为正数毫秒将覆盖全局设置的<code>httpRequestTimeout</code></dd>
</dl>
<h3>输出</h3>
<dl class="message-properties">
<dt>payload <span class="property-type">字符串 | object | buffer</span></dt>
<dd>响应的正文可以将节点配置为以字符串形式返回主体尝试将其解析为JSON字符串或将其保留为二进制buffer</dd>
<dt>statusCode <span class="property-type">数值</span></dt>
<dd>响应的状态码如果请求无法完成则返回错误码</dd>
<dt>headers <span class="property-type">object</span></dt>
<dd>包含响应头的对象</dd>
<dt>responseUrl <span class="property-type">字符串</span></dt>
<dd>如果在处理请求时发生任何重定向则此属性为最终重定向的URL否则则为原始请求的URL</dd>
<dt>responseCookies <span class="property-type">object</span></dt>
<dd>如果响应包含cookie则此属性是每个cookie的名称/键值对的对象</dd>
<dt>redirectList <span class="property-type">数组</span></dt>
<dd>如果请求被重定向了一次或多次则累积的信息将被添加到此属性location是下一个重定向目标cookie是从重定向源返回的cookie</dd>
</dl>
<h3>详细</h3>
<p>在节点内配置后URL属性可以包含<a href="http://mustache.github.io/mustache.5.html" target="_blank">mustache样式</a>标签。 这些标签允许使用传入消息的值来构造url。例如如果url设置为<code>example.com/{{{{topic}}}</code><code>msg.topic</code>使{{{...}}}mustache/ &</p>
<p>节点可以选择自动将<code>msg.payload</code>GET<code>msg.payload</code></p>
<p><b>注意</b>使<code>http_proxy=...</code>Node-RED使</p>
<h4>使用多个HTTP请求节点</h4>
<p>为了在一个流程中多次使用该节点必须要注意<code>msg.headers</code>使<code>msg.headers</code><code>msg.headers</code><code>{}</code></p>
<h4>Cookie处理</h4>
<p>传递给节点的<code>cookies</code>/cookie<code>value</code></p>
<p>请求返回的所有cookie都将在<code>responseCookies</code></p>
<h4>内容类型处理</h4>
<p>如果<code>msg.payload</code><code>application/json</code></p>
<p>要将请求编码为表单数据应将<code>msg.headers[content-type]</code><code>application/x-www-form-urlencoded</code></p>
<h4>文件上传</h4>
<p>要执行文件上传应将<code>msg.headers["content-type"]</code><code>multipart/form-data</code><code>msg.payload</code></p>
<pre><code>{
"KEY": {
"value": FILE_CONTENTS,
"options": {
"filename": "FILENAME"
}
}
}</code></pre>
<p><code>KEY</code>,<code>FILE_CONTENTS</code><code>FILENAME</code></p>
</script>

View File

@@ -0,0 +1,35 @@
<!--
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/x-red" data-help-name="websocket in">
<p>WebSocket输入节点</p>
<p>默认情况下从WebSocket接收的数据将位于<code>msg.payload</code>JSONJSON</p>
</script>
<script type="text/x-red" data-help-name="websocket out">
<p>WebSocket输出节点</p>
<p>默认情况下<code>msg.payload</code>WebSocket<code>msg</code>JSONWebSocket</p>
<p>如果到达此节点的消息是从WebSocket In节点开始的则该消息将发送回触发流程的客户端否则消息将广播给所有连接的客户端</p>
<p>如果要广播从WebSocket输入节点开始的消息则可以应该删除流中的<code>msg._session</code></p>
</script>
<script type="text/x-red" data-help-name="websocket-listener">
<p>此配置节点使用指定的路径创建WebSocket服务器端点</p>
</script>
<script type="text/x-red" data-help-name="websocket-client">
<p>此配置节点将WebSocket客户端连接到指定的URL</p>
</script>

View File

@@ -0,0 +1,35 @@
<!--
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/x-red" data-help-name="tcp in">
<p>提供TCP输入选择可以连接到远程TCP端口或接受传入连接</p>
<p><b>注意</b>root访1024</p>
</script>
<script type="text/x-red" data-help-name="tcp out">
<p>提供TCP输出的选择可以连接到远程TCP端口接受传入的连接或回复从TCP In节点收到的消息</p>
<p>仅发送<code>msg.payload</code></p>
<p>如果<code>msg.payload</code>Base64Base64</p>
<p>如果不存在<code>msg._session</code><b></b></p>
<p><b>注意</b>root访1024</p>
</script>
<script type="text/x-red" data-help-name="tcp request">
<p>一个简单的TCP请求节点<code>msg.payload</code>tcp</p>
<p>连接到服务器发送请求并接收响应 可以从固定数量的字符与指定字符匹配的字符中选择操作从第一个答复到达起等待指定的时间等待数据到达发送数据并立即取消连接而无需等待答复等操作中进行选择</p>
<p>响应将在<code>msg.payload</code>buffer<code>.toString()</code></p>
<p>如果将tcp主机或端口留空则必须使用<code>msg.host</code><code>msg.port</code></p>
</script>

View File

@@ -0,0 +1,28 @@
<!--
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/x-red" data-help-name="udp in">
<p>UDP输入节点<code>msg.payload</code>BufferBase64</p>
<p><code>msg.ip</code><code>msg.port</code>IP</p>
<p><b>注意</b>root使1024广</p>
</script>
<script type="text/x-red" data-help-name="udp out">
<p>该节点将<code>msg.payload</code>UDP</p>
<p>您也可以使用<code>msg.ip</code><code>msg.port</code></p>
<p>如果选择广播则将地址设置为本地广播IP地址或者也可以尝试使用全局广播地址255.255.255.255</p>
<p><b>注意</b>root使1024广</p>
</script>

View File

@@ -0,0 +1,43 @@
<!--
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/x-red" data-help-name="csv">
<p>在CSV格式的字符串及其JavaScript对象表示形式之间进行相互转换</p>
<h3>输入</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">object | 数组 | 字符串</span></dt>
<dd>JavaScript对象数组或CSV字符串</dd>
</dl>
<h3>输出</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">object | 数组 | 字符串</span></dt>
<dd>
<ul>
<li>如果输入是字符串它将尝试将其解析为CSV并为每行创建键/值对的JavaScript对象然后该节点将为每行发送一条消息或者发送一条包含对象数组的消息</li>
<li>如果输入是JavaScript对象它将尝试构建CSV字符串</li>
<li>如果输入是简单值的数组则将构建单行CSV字符串</li>
<li>如果输入是数组数组或对象数组则会创建多行CSV字符串</li>
</ul>
</dd>
</dl>
<h3>详细</h3>
<p>列模板可以包含列名称的有序列表将CSV转换为对象时列名将用作属性名称或者也可以从CSV的第一行中获取列名称</p>
<p>转换为CSV时列模板用于标识从对象中提取的属性以及提取的顺序</p>
<p>如果输入是数组则列模板仅用于有选择地生成一行列标题</p>
<p>只要正确设置<code>parts</code></p>
<p>如果输出多个消息则将设置其<code>parts</code></p>
<p><b>注意</b>使</p>
</script>

View File

@@ -0,0 +1,33 @@
<!--
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/x-red" data-help-name="html">
<p>使用CSS选择器从<code>msg.payload</code>html</p>
<h3>输入</h3>
<dl class="message-properties">
<dt>payload <span class="property-type">字符串</span></dt>
<dd>从中提取元素的html字符串</dd>
<dt class="optional">select <span class="property-type">字符串</span></dt>
<dd>如果未在编辑面板中配置则可以将选择器设置为msg的属性</dd>
</dl>
<h3>Output</h3>
<dl class="message-properties">
<dt>payload <span class="property-type">数组 | 字符串</span></dt>
<dd>结果可以是有效载荷中包含匹配元素的数组的单个消息也可以是多条消息每条消息都包含匹配元素发送多条消息时需要为消息设置<code>parts</code></dd>
</dl>
<h3>详细</h3>
<p>该节点支持CSS和jQuery选择器的组合查看<a href="https://github.com/fb55/CSSselect#user-content-supported-selectors" target="_blank">css-select documentation</a> </p>
</script>

View File

@@ -0,0 +1,43 @@
<!--
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/x-red" data-help-name="json">
<p>在JSON字符串及其JavaScript对象表示形式之间相互转换</p>
<h3>输入</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">object | 字符串</span></dt>
<dd>JavaScript对象或JSON字符串</dd>
<dt>schema<span class="property-type">object</span></dt>
<dd>可选的JSON Schema对象用于验证有效负载在将<code>msg</code></dd>
</dl>
<h3>Outputs</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">object | 字符串</span></dt>
<dd>
<ul>
<li>如果输入是JSON字符串它将尝试将其解析为JavaScript对象</li>
<li>如果输入是JavaScript对象它将创建一个JSON字符串并可以选择对此JSON字符串进行整形</li>
</ul>
</dd>
<dt>schemaError<span class="property-type">数组</span></dt>
<dd>如果JSON模式验证失败则catch节点将具有包含错误数组的<code>schemaError</code></dd>
</dl>
<h3>详细</h3>
<p>默认的转换目标是<code>msg.payload</code></p>
<p>您可以将其设置为仅执行特定的转换而不是自动选择双向转换例如即使对<code>HTTP In</code>content-type使JSONJavaScript</p>
<p>如果指定了转换为JSON字符串则不会对收到的字符串进行进一步的检查也就是说即使指定了格式化选项它也不会检查字符串是否正确为JSON或对JSON执行整形</p>
<p>有关JSON模式的更多详细信息请查阅<a href="http://json-schema.org/latest/json-schema-validation.html">规范</a>.</p>
</script>

View File

@@ -0,0 +1,48 @@
<!--
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/x-red" data-help-name="xml">
<p>在XML字符串及其JavaScript对象表示形式之间进行相互转换</p>
<h3>输入</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">object | 字符串</span></dt>
<dd>JavaScript对象或XML字符串</dd>
</dl>
<h3>输出</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">object | 字符串</span></dt>
<dd>
<ul>
<li>如果输入是字符串它将尝试将其解析为XML并创建一个JavaScript对象</li>
<li>如果输入是JavaScript对象它将尝试构建XML字符串</li>
</ul>
</dd>
<dt class="optional">options <span class="property-type">object</span></dt>
<dd>可以将选项传递给内部使用的XML转换库请参见<a href="https://github.com/Leonidas-from-XIV/node-xml2js/blob/master/README.md#options" target="_blank"> xml2js文档</a> </dd>
</dl>
<h3>详细</h3>
<p>在XML和对象之间进行转换时默认情况下XML属性会添加到名为<code>$</code><code>_</code></p>
<p>例如将如下所示转换以下XML</p>
<pre>&lt;p class="tag"&gt;Hello World&lt;/p&gt;</pre>
<pre>{
"p": {
"$": {
"class": "tag"
},
"_": "Hello World"
}
}</pre>
</script>

View File

@@ -0,0 +1,34 @@
<!--
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/x-red" data-help-name="yaml">
<p>在YAML格式的字符串及其JavaScript对象表示形式之间相互转换</p>
<h3>输入</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">object | 字符串</span></dt>
<dd>JavaScript对象或YAML字符串</dd>
</dl>
<h3>Outputs</h3>
<dl class="message-properties">
<dt>payload<span class="property-type">object | 字符串</span></dt>
<dd>
<ul>
<li>如果输入是YAML字符串它将尝试将其解析为JavaScript对象</li>
<li>如果输入是JavaScript对象它将创建一个YAML字符串</li>
</ul>
</dd>
</dl>
</script>

View File

@@ -0,0 +1,133 @@
<!--
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/x-red" data-help-name="split">
<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>
<script type="text/x-red" data-help-name="join">
<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>
<li><code>key</code> - <code>msg.topic</code>/li>
<li><code>len</code> - 使</li>
</ul>
</dd>
<dt class="optional">complete</dt>
<dd>如果设置则节点将以其当前状态发送其输出消息</dd>
</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>
<p>如果收到设置了<b>msg.complete</b></p>
<p>如果收到设置了<b>msg.reset</b></p>
<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>
</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>

View File

@@ -0,0 +1,41 @@
<!--
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/x-red" data-help-name="sort">
<p>对消息属性或消息序列进行排序的函数</p>
<p>当配置为对消息属性进行排序时节点将对指定消息属性所指向的数组数据进行排序</p>
<p>当配置为对消息序列排序时它将对消息重新排序</p>
<p>排序顺序可以是</p>
<ul>
<li><b>升序</b></li>
<li><b>降序</b></li>
</ul>
<p>对于数字可以通过复选框指定数字顺序</p>
<p>排序键可以是元素值也可以是JSONata表达式来对属性值进行排序还可以是message属性或JSONata表达式来对消息序列进行排序<p>
<p>在对消息序列进行排序时排序节点依赖于接收到的消息来设置<code>msg.parts</code></p>
<p>
<ul>
<li><code>id</code> - </li>
<li><code>index</code> - </li>
<li><code>count</code> - </li>
</ul>
</p>
<p><b>注意</b>使
<ul>
<li><code>nodeMessageBufferMaxLength</code><b>settings.js</b></li>
</ul>
</p>
</script>

View File

@@ -0,0 +1,34 @@
<!--
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/x-red" data-help-name="batch">
<p>根据各种规则创建消息序列</p>
<h3>详细</h3>
<p>有三种创建消息序列的模式</p>
<dl>
<dt>讯息数</dt>
<dd>将消息分组为给定长度的序列 <b>overlap</b></dd>
<dt>时间间隔</dt>
<dd>对在指定时间间隔内到达的邮件进行分组如果在该时间间隔内没有消息到达则该节点可以选择发送空消息</dd>
<dt>串联序列</dt>
<dd>通过串联输入序列来创建消息序列每条消息必须具有<code>msg.topic</code><code>msg.parts</code><code>topic</code>
</dd>
</dl>
<h4>储存讯息</h4>
<p>该节点将在内部缓冲消息以便跨序列工作运行时设置<code>nodeMessageBufferMaxLength</code></p>
</script>

View File

@@ -0,0 +1,59 @@
<!--
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/x-red" data-help-name="file">
<p><code>msg.payload</code></p>
<h3>输入</h3>
<dl class="message-properties">
<dt class="optional">filename<span class="property-type">字符串</span></dt>
<dd>如果未在节点中配置则此可选属性可以设置文件名</dd>
</dl>
<h3>输出</h3>
<p>写入完成后输入消息将发送到输出端口</p>
<h3>详细</h3>
<p>每个消息的有效荷载将添加到文件的末尾可以选择在每个消息之间添加一个换行符\n</p>
<p>如果使用<code>msg.filename</code>使</p>
<p>可以将其配置为覆盖整个文件而不是在文件后添加段落例如在将二进制数据写入文件例如图像应使用此选项并且应禁用添加换行符的选项</p>
<p>可以从编码列表中指定写入文件的数据的编码</p>
<p>您可以将此节点配置为删除文件</p>
</script>
<script type="text/x-red" data-help-name="file in">
<p>以字符串或二进制缓冲区的形式读取文件的内容</p>
<h3>输入</h3>
<dl class="message-properties">
<dt class="optional">filename<span class="property-type">字符串</span></dt>
<dd>如果未在节点配置中设置该属性可以选择要读取的文件名</dd>
</dl>
<h3>输出</h3>
<dl class="message-properties">
<dt>payload <span class="property-type">字符串 | buffer</span></dt>
<dd>文件的内容可以是字符串也可以是二进制的buffer</dd>
<dt class="optional">filename <span class="property-type">字符串</span></dt>
<dd>如果未在节点配置中设置该属性可以选择要读取的文件名</dd>
<dt class="optional">error <span class="property-type">object</span></dt>
<dd><i>已不推荐使用</i>: <code></code><code>error</code> </dd>
</dl>
<h3>详细</h3>
<p>文件名应该是绝对路径否则将相对于Node-RED进程的工作目录</p>
<p>在Windows上可能需要使用转义路径分隔符例如<code>\\Users\\myUser</code></p>
<p>可以选择将文本文件拆分为几行每行输出一条消息或者将二进制文件拆分为较小的buffer块-块大小取决于操作系统但通常为64kLinux/Mac或41kWindows</p>
<p>当拆分为多条消息时每条消息将具有<code>parts</code></p>
<p>如果输出格式为字符串则可以从编码列表中指定输入数据的编码</p>
<h4>旧版的错误处理</h4>
<p>在Node-RED 0.17之前如果此节点在读取文件时遇到错误它将发送一条不包含<code>msg.payload</code><code>msg.error</code><code>msg.error</code></p>
<p>应该使用Catch节点来捕获并处理错误</p>
</script>

View File

@@ -0,0 +1,25 @@
<!--
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/x-red" data-help-name="watch">
<p>监视目录或文件中的更改</p>
<p>您可以输入用逗号分隔的目录和/或文件的列表您需要在所有带有空格的地方加上引号...</p>
<p>在Windows上必须在任何目录名称中使用双反斜杠<code>\\</code></p>
<p>实际更改的文件的完整文件名将放入<code>msg.payload</code><code>msg.filename</code><code>msg.topic</code></p>
<p><code>msg.file</code><code>msg.type</code><i>file</i><i>directory</i><code>msg.size</code></p>
<p>当然在Linux中<i>everything</i></p>
<p><b>注意</b>使</p>
</script>

View File

@@ -0,0 +1,910 @@
{
"common": {
"label": {
"payload": "內容",
"topic": "主題",
"name": "名稱",
"username": "使用者名稱",
"password": "密碼",
"property": "屬性"
},
"status": {
"connected": "已連接",
"not-connected": "未連接",
"disconnected": "已斷開",
"connecting": "連接中",
"error": "錯誤",
"ok": "確定"
},
"notification": {
"error": "<strong>錯誤</strong>: __message__",
"errors": {
"not-deployed": "節點未部署",
"no-response": "伺服器無反應",
"unexpected": "發生意外錯誤 (__status__) __message__"
}
},
"errors": {
"nooverride": "警告: 資訊的屬性已經不可以改寫節點的屬性. 詳情參考 bit.ly/nr-override-msg-props"
}
},
"inject": {
"inject": "注入",
"repeat": "重複 = __repeat__",
"crontab": "crontab = __crontab__",
"stopped": "停止",
"failed": "注入失敗: __error__",
"label": {
"repeat": "重複"
},
"timestamp": "時間戳記",
"none": "無",
"interval": "週期性執行",
"interval-time": "指定時間段並週期性執行",
"time": "指定時間",
"seconds": "秒",
"minutes": "分鐘",
"hours": "小時",
"between": "介於",
"previous": "之前數值",
"at": "在",
"and": "至",
"every": "每隔",
"days": [
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六",
"星期天"
],
"on": "在",
"onstart": "立刻執行於",
"onceDelay": "秒後, 此後",
"tip": "<b>注意:</b> \"指定時間段並週期性執行\" 和 \"指定時間\" 會使用cron系統.<br/> 詳情查看信息頁.",
"success": "成功注入: __label__",
"errors": {
"failed": "注入失敗, 請查看日誌",
"toolong": "週期過長"
}
},
"catch": {
"catch": "監測所有節點",
"catchNodes": "監測__number__個節點",
"label": {
"source": "監測範圍",
"node": "節點",
"type": "類型",
"selectAll": "全選",
"sortByLabel": "按名稱排序",
"sortByType": "按類型排序"
},
"scope": {
"all": "所有節點",
"selected": "指定節點"
}
},
"status": {
"status": "報告所有節點狀態",
"statusNodes": "報告__number__個節點狀態",
"label": {
"source": "報告狀態範圍",
"node": "節點",
"type": "類型",
"selectAll": "全選",
"sortByLabel": "按名稱排序",
"sortByType": "按類型排序"
},
"scope": {
"all": "所有節點",
"selected": "指定節點"
}
},
"debug": {
"output": "輸出",
"msgprop": "資訊屬性",
"msgobj": "完整資訊",
"to": "目標",
"debtab": "除錯窗口",
"tabcon": "除錯窗口及Console",
"toSidebar": "除錯窗口",
"toConsole": "Console",
"toStatus": "節點狀態 (32位元字元)",
"severity": "級別",
"notification": {
"activated": "成功啟動: __label__",
"deactivated": "成功取消: __label__"
},
"sidebar": {
"label": "除錯窗口",
"name": "名稱",
"filterAll": "所有節點",
"filterSelected": "已選節點",
"filterCurrent": "當前流程",
"debugNodes": "除錯節點",
"clearLog": "清空日誌",
"openWindow": "在新視窗打開"
},
"messageMenu": {
"collapseAll": "折疊所有路徑",
"clearPinned": "清空已固定路徑",
"filterNode": "過濾此節點",
"clearFilter": "清空過濾條件"
}
},
"link": {
"linkIn": "輸入",
"linkOut": "輸出"
},
"tls": {
"tls": "TLS設置",
"label": {
"use-local-files": "使用本地密鑰及證書檔",
"upload": "上傳",
"cert": "證書",
"key": "私密金鑰",
"passphrase": "密碼",
"ca": "CA證書",
"verify-server-cert":"驗證伺服器憑證"
},
"placeholder": {
"cert":"憑證路徑 (PEM 格式)",
"key":"私密金鑰路徑 (PEM 格式)",
"ca":"CA憑證路徑 (PEM 格式)",
"passphrase":"私密金鑰密碼 (可選)"
},
"error": {
"missing-file": "未提供證書/金鑰檔案"
}
},
"exec": {
"label": {
"command": "命令",
"append": "追加",
"timeout": "超時",
"timeoutplace": "可選填",
"return": "輸出",
"seconds": "秒"
},
"placeholder": {
"extraparams": "額外的輸入參數"
},
"opt": {
"exec": "當命令完成時 - exec模式",
"spawn": "當命令進行時 - spawn模式"
},
"oldrc": "使用舊式輸出 (相容模式)"
},
"function": {
"label": {
"function": "函數",
"outputs": "輸出"
},
"error": {
"inputListener":"無法在函數中監聽對'注入'事件",
"non-message-returned":"函數節點嘗試返回類型為 __type__ 的資訊"
}
},
"template": {
"label": {
"template": "模版",
"property": "屬性",
"format": "語法高亮",
"syntax": "格式",
"output": "輸出為",
"mustache": "Mustache 模版",
"plain": "純文字",
"json": "JSON",
"yaml": "YAML",
"none": "無"
},
"templatevalue": "This is the payload: {{payload}} !"
},
"delay": {
"action": "行為設置",
"for": "時長",
"delaymsg": "延遲每一條資訊",
"delayfixed": "固定延遲時間",
"delayvarmsg": "允許msg.delay複寫延遲時長",
"randomdelay": "隨機延遲",
"limitrate": "限制資訊頻率",
"limitall": "所有資訊",
"limittopic": "每一個msg.topic",
"fairqueue": "依次發送每一個topic",
"timedqueue": "發所有topic",
"milisecs": "毫秒",
"secs": "秒",
"sec": "秒",
"mins": "分",
"min": "分",
"hours": "小時",
"hour": "小時",
"days": "天",
"day": "天",
"between": "介於",
"and": "至",
"rate": "速度",
"msgper": "信息 每",
"dropmsg": "不傳輸中間資訊",
"label": {
"delay": "延遲",
"variable": "變數",
"limit": "限制",
"limitTopic": "限制主題",
"random": "隨機",
"units" : {
"second": {
"plural" : "秒",
"singular": "秒"
},
"minute": {
"plural" : "分鐘",
"singular": "分鐘"
},
"hour": {
"plural" : "小時",
"singular": "小時"
},
"day": {
"plural" : "天",
"singular": "天"
}
}
},
"error": {
"buffer": "緩衝了超過 1000 條資訊",
"buffer1": "緩衝了超過 10000 條資訊"
}
},
"trigger": {
"send": "發送",
"then": "然後",
"then-send": "然後發送",
"output": {
"string": "字串",
"number": "數字",
"existing": "現有資訊物件",
"original": "原本資訊物件",
"latest": "最新資訊物件",
"nothing": "無"
},
"wait-reset": "等待被重置",
"wait-for": "等待",
"wait-loop": "週期性重發",
"duration": {
"ms": "毫秒",
"s": "秒",
"m": "分鐘",
"h": "小時"
},
"extend": " 如有新資訊,延長延遲",
"label": {
"trigger": "觸發",
"trigger-block": "觸發並阻止",
"trigger-loop": "週期性重發",
"reset": "重置觸發節點條件 如果:",
"resetMessage":"msg.reset已設置",
"resetPayload":"msg.payload等於",
"resetprompt": "可選填"
}
},
"comment": {
},
"unknown": {
"label": {
"unknown": "未知"
},
"tip": "<p>此節點是您安裝但Node-RED所不知道的類型。</p><p><i>如果在此狀態下部署節點,那麼它的配置將被保留,但是流程將不會啟動,直到安裝缺少的節點。</i></p><p>有關更多説明,請參閱資訊側欄</p>"
},
"mqtt": {
"label": {
"broker": "服務端",
"example": "e.g. localhost",
"output": "輸出",
"qos": "QoS",
"clientid": "使用者端ID",
"port": "埠",
"keepalive": "Keepalive計時(秒)",
"cleansession": "使用新的會話",
"use-tls": "使用安全連接 (SSL/TLS)",
"tls-config":"TLS 設置",
"verify-server-cert":"驗證伺服器憑證",
"compatmode": "使用舊式MQTT 3.1支援"
},
"tabs-label": {
"connection": "連接",
"security": "安全",
"will": "Will信息",
"birth": "Birth信息"
},
"placeholder": {
"clientid": "留白則自動隨機生成",
"clientid-nonclean":"如非新會話必須設置使用者端ID",
"will-topic": "留白將禁止Will資訊",
"birth-topic": "留白將禁止Birth資訊"
},
"state": {
"connected": "已連接到服務端: __broker__",
"disconnected": "已斷開與服務端 __broker__ 的連結",
"connect-failed": "與服務端 __broker__ 的連接失敗"
},
"retain": "保留",
"output": {
"buffer": "Buffer",
"string": "字串",
"base64": "Base64編碼字串"
},
"true": "是",
"false": "否",
"tip": "提示: 若希望通過msg屬性對topic(資訊), qos及retain(保留)進行設置, 則將上述項留白",
"errors": {
"not-defined": "主題未設置",
"missing-config": "未設置服務端",
"invalid-topic": "主題無效",
"nonclean-missingclientid": "使用者端ID未設定使用新會話"
}
},
"httpin": {
"label": {
"method": "請求方式",
"url": "URL",
"doc": "文字檔",
"return": "返回",
"upload": "接受檔案上傳?",
"status": "狀態碼",
"headers": "Header",
"other": "其他"
},
"setby": "- 用 msg.method 設定 -",
"basicauth": "基本認證",
"use-tls": "使用安全連接 (SSL/TLS) ",
"tls-config":"TLS 設置",
"utf8": "UTF-8 字串",
"binary": "二進位資料",
"json": "JSON對象",
"tip": {
"in": "相對URL",
"res": "發送到此節點的消息<b>必須</b>來自<i>http input</i>節點",
"req": "提示如果JSON解析失敗則獲取的字串將按原樣返回."
},
"httpreq": "http 請求",
"errors": {
"not-created": "當httpNodeRoot為否時無法創建http-in節點",
"missing-path": "無路徑",
"no-response": "無響應物件",
"json-error": "JSON 解析錯誤",
"no-url": "未設定 URL",
"deprecated-call":"__method__方法已棄用",
"invalid-transport":"非HTTP傳輸請求"
},
"status": {
"requesting": "請求中"
}
},
"websocket": {
"label": {
"type": "類型",
"path": "路徑",
"url": "URL"
},
"listenon": "監聽",
"connectto": "連接",
"sendrec": "發送/接受",
"payload": "有效載荷",
"message": "完整資訊",
"tip": {
"path1": "預設情況下,<code>payload</code>將包含要發送或從Websocket接收的資料。偵聽器可以配置為以JSON格式的字串發送或接收整個消息物件.",
"path2": "這條路徑將相對於 ",
"url1": "URL 應該使用ws:&#47;&#47;或者wss:&#47;&#47;方案並指向現有的websocket監聽器.",
"url2": "預設情況下,<code>payload</code> 將包含要發送或從Websocket接收的資料。可以將使用者端配置為以JSON格式的字串發送或接收整個消息物件."
},
"errors": {
"connect-error": "ws連接發生了錯誤: ",
"send-error": "發送時發生了錯誤: ",
"missing-conf": "未設置伺服器"
}
},
"watch": {
"label": {
"files": "文件",
"recursive": "遞迴所有子資料夾"
},
"placeholder": {
"files": "逗號分開文件或資料夾"
},
"tip": "在Windows上請務必使用雙斜杠 \\\\ 來隔開資料夾名字"
},
"tcpin": {
"label": {
"type": "類型",
"output": "輸出",
"port": "埠",
"host": "主機位址",
"payload": "的有效載荷",
"delimited": "分隔符號號",
"close-connection": "是否在成功發送每條資訊後斷開連接?",
"decode-base64": "用 Base64 解碼信息?",
"server": "伺服器",
"return": "返回",
"ms": "毫秒",
"chars": "字元"
},
"type": {
"listen": "監聽",
"connect": "連接",
"reply": "回應 TCP"
},
"output": {
"stream": "字串流",
"single": "單一",
"buffer": "Buffer",
"string": "字串",
"base64": "Base64 字串"
},
"return": {
"timeout": "指定時間後",
"character": "當收到某個字元為",
"number": "指定字元數",
"never": "永不 - 保持連接",
"immed": "馬上 - 不需要等待回復"
},
"status": {
"connecting": "正在連接到 __host__:__port__",
"connected": "已經連接到 __host__:__port__",
"listening-port": "監聽埠 __port__",
"stopped-listening": "已停止監聽埠",
"connection-from": "連接來自 __host__:__port__",
"connection-closed": "連接已關閉 __host__:__port__",
"connections": "__count__ 個連接",
"connections_plural": "__count__ 個連接"
},
"errors": {
"connection-lost": "連接中斷 __host__:__port__",
"timeout": "超時關閉通訊端連接,埠 __port__",
"cannot-listen": "無法監聽埠 __port__, 錯誤: __error__",
"error": "錯誤: __error__",
"socket-error": "通訊端連接錯誤來自 __host__:__port__",
"no-host": "主機位址或埠未設定",
"connect-timeout": "連接逾時",
"connect-fail": "連接失敗"
}
},
"udp": {
"label": {
"listen": "監聽",
"onport": "埠",
"using": "使用",
"output": "輸出",
"group": "組",
"interface": "本地IP",
"interfaceprompt": "(可選)本地 IP 綁定到",
"send": "發送一個",
"toport": "到埠",
"address": "地址",
"decode-base64": "是否解碼Base64編碼的資訊?"
},
"placeholder": {
"interface": "可選eth0的IP地址",
"address": "目標IP位址"
},
"udpmsgs": "udp信息",
"mcmsgs": "群播信息",
"udpmsg": "udp信息",
"bcmsg": "廣播資訊",
"mcmsg": "群播信息",
"output": {
"buffer": "Buffer",
"string": "字串",
"base64": "Base64編碼字串"
},
"bind": {
"random": "綁定到任意本地埠",
"local": "綁定到本地埠",
"target": "綁定到目標埠"
},
"tip": {
"in": "提示:確保您的防火牆將允許資料進入",
"out": "提示:如果要使用<code>msg.ip</code>和<code>msg.port</code>設置,請將位址和埠留空",
"port": "正在使用埠: "
},
"status": {
"listener-at": "udp 監聽器正在監聽 __host__:__port__",
"mc-group": "udp 群播到 __group__",
"listener-stopped": "udp 監聽器已停止",
"output-stopped": "udp 輸出已停止",
"mc-ready": "udp 群播已準備好: __outport__ -> __host__:__port__",
"bc-ready": "udp 廣播已準備好: __outport__ -> __host__:__port__",
"ready": "udp 已準備好: __outport__ -> __host__:__port__",
"ready-nolocal": "udp 已準備好: __host__:__port__",
"re-use": "udp 重用通訊端: __outport__ -> __host__:__port__"
},
"errors": {
"access-error": "UDP 訪問錯誤, 你可能需要root許可權才能接入1024以下的埠",
"error": "錯誤: __error__",
"bad-mcaddress": "無效的群播地址",
"interface": "必須是指定介面的IP位址",
"ip-notset": "udp: IP地址未設定",
"port-notset": "udp: 埠未設定",
"port-invalid": "udp: 無效埠號碼",
"alreadyused": "udp: 埠已被佔用"
}
},
"switch": {
"label": {
"property": "屬性",
"rule": "規則",
"repair" : "重建資訊佇列"
},
"and": "與",
"checkall": "全選所有規則",
"stopfirst": "接受第一條匹配資訊後停止",
"ignorecase": "忽略大小寫",
"rules": {
"btwn":"在之間",
"cont":"包含",
"regex":"匹配規則運算式",
"true":"為真",
"false":"為假",
"null":"為空",
"nnull":"非空",
"head":"head",
"tail":"tail",
"index":"index between",
"exp":"JSONata運算式",
"else":"除此以外"
},
"errors": {
"invalid-expr": "無效的JSONata運算式: __error__",
"too-many" : "Switch節點中有太多待定信息"
}
},
"change": {
"label": {
"rules": "規則",
"rule": "規則",
"set": "設定 __property__",
"change": "修改 __property__",
"delete": "刪除 __property__",
"move": "移動 __property__",
"changeCount": "修改: __count__條規矩",
"regex": "使用規則運算式"
},
"action": {
"set": "設定",
"change": "修改",
"delete": "刪除",
"move": "轉移",
"to": "到",
"search": "搜索",
"replace": "替代為"
},
"errors": {
"invalid-from": "無效的'from'屬性: __error__",
"invalid-json": "無效的'to'JSON 屬性",
"invalid-expr": "無效的JSONata運算式: __error__"
}
},
"range": {
"label": {
"action": "操作",
"inputrange": "映射輸入資料",
"resultrange": "至目標範圍",
"from": "從",
"to": "到",
"roundresult": "取最接近整數?"
},
"placeholder": {
"min": "e.g. 0",
"maxin": "e.g. 99",
"maxout": "e.g. 255"
},
"scale": {
"payload": "按比例msg.payload",
"limit": "按比例並設定界限至目標範圍",
"wrap": "按比例並包含在目標範圍內"
},
"tip": "提示: 此節點僅對數字有效",
"errors": {
"notnumber": "不是一個數字"
}
},
"csv": {
"label": {
"columns": "列",
"separator": "分隔符號",
"c2o": "CSV至對象",
"o2c": "對象至CSV",
"input": "輸入",
"skip-s": "忽略前",
"skip-e": "行",
"firstrow": "第一行包含列名",
"output": "輸出",
"includerow": "包含列名行",
"newline": "分行符號"
},
"placeholder": {
"columns": "用逗號分割列名"
},
"separator": {
"comma": "逗號",
"tab": "Tab",
"space": "空格",
"semicolon": "分號",
"colon": "冒號",
"hashtag": "井號",
"other": "其他..."
},
"output": {
"row": "每行一條信息",
"array": "僅一條資訊 [陣列]"
},
"newline": {
"linux": "Linux (\\n)",
"mac": "Mac (\\r)",
"windows": "Windows (\\r\\n)"
},
"errors": {
"csv_js": "此節點僅處理CSV字串或JS物件",
"obj_csv": "對象->CSV轉換未設定列模版"
}
},
"html": {
"label": {
"select": "選取項",
"output": "輸出"
},
"output": {
"html": "選定元素的html內容",
"text": "選定元素的純文字內容",
"attr": "包含選定元素的所有屬性的物件"
},
"format": {
"single": "一條資訊 [陣列]",
"multi": "多條資訊,每條一個元素"
}
},
"json": {
"errors": {
"dropped-object": "忽略非物件格式的有效負載",
"dropped": "忽略不支援格式的有效負載類型",
"dropped-error": "轉換有效負載失敗"
},
"label": {
"o2j": "對象至JSON",
"pretty": "格式化JSON字串",
"action": "操作",
"property": "屬性",
"actions": {
"toggle": "JSON字串與物件互轉",
"str":"總是轉為JSON字串",
"obj":"總是轉為JS對象"
}
}
},
"yaml": {
"errors": {
"dropped-object": "忽略非物件格式的有效負載",
"dropped": "忽略不支援格式的有效負載類型",
"dropped-error": "轉換有效負載失敗"
}
},
"xml": {
"label": {
"represent": "XML標籤屬性的屬性名稱",
"prefix": "標籤文本內容的屬性名稱",
"advanced": "高級選項",
"x2o": "XML到物件選項"
},
"errors": {
"xml_js": "此節點僅處理XML字串或JS物件."
}
},
"rpi-gpio": {
"label": {
"gpiopin": "GPIO",
"selectpin": "選擇引腳",
"resistor": "電阻?",
"readinitial": "在部署/重啟時讀取引腳的初始狀態?",
"type": "類型",
"initpin": "初始化引腳狀態?",
"debounce": "去抖動",
"freq": "頻率",
"button": "按鈕",
"pimouse": "Pi滑鼠",
"pikeyboard": "Pi鍵盤",
"left": "左",
"right": "右",
"middle": "中"
},
"resistor": {
"none": "無",
"pullup": "上拉電阻",
"pulldown": "下拉電阻"
},
"digout": "數位輸出",
"pwmout": "PWM輸出",
"servo": "伺服輸出",
"initpin0": "初始引腳電平 - 低(0)",
"initpin1": "初始引腳電平 - 高(1)",
"left": "左",
"right": "右",
"middle": "中",
"any": "任何",
"pinname": "引腳",
"alreadyuse": "已被使用",
"alreadyset": "已被設為",
"tip": {
"pin": "<b>正在使用引腳</b>: ",
"in": "提示: 僅接受數位輸入 - 輸出必須為0或1.",
"dig": "提示: 如用數位輸出 - 輸入必須為0或1.",
"pwm": "提示: 如用PWM輸出 - 輸入必須為0至100之間; 如用高頻率可能會比預期佔用更多CPU資源.",
"ser": "<b>提示</b>: 如用伺服輸出 - 輸入必須為0至100之間. 50為中間值."
},
"types": {
"digout": "數位輸出",
"input": "輸入",
"pullup": "含有上拉電阻的輸入",
"pulldown": "含有下拉電阻的輸入",
"pwmout": "PWM輸出",
"servo": "伺服輸出"
},
"status": {
"stopped": "已停止",
"closed": "已關閉",
"not-running": "不運行"
},
"errors": {
"ignorenode": "忽略樹莓派的特定節點",
"version": "版本命令失敗",
"sawpitype": "查看Pi類型",
"libnotfound": "找不到樹莓派RPi.GPIO的python庫",
"alreadyset": "GPIO引腳 __pin__ 已經被設定為類型: __type__",
"invalidpin": "無效GPIO引腳",
"invalidinput": "無效輸入",
"needtobeexecutable": "__command__須為可運行命令",
"mustbeexecutable": "nrgpio須為可運行",
"commandnotfound": "nrgpio命令不存在",
"commandnotexecutable": "nrgpio命令不可運行",
"error": "錯誤: __error__",
"pythoncommandnotfound": "nrpgio python命令未處於運行狀態"
}
},
"file": {
"label": {
"filename": "檔案名",
"action": "行為",
"addnewline": "向每個有效載荷添加分行符號(\\n?",
"createdir": "創建目錄(如果不存在)?",
"outputas": "輸出",
"breakchunks": "分拆成塊",
"breaklines": "分拆成行",
"filelabel": "文件",
"sendError": "發生錯誤時發送消息(傳統模式)",
"deletelabel": "刪除 __file__"
},
"action": {
"append": "追加至文件",
"overwrite": "複寫文件",
"delete": "刪除檔"
},
"output": {
"utf8": "一個utf8字串",
"buffer": "一個Buffer物件",
"lines": "每行一條信息",
"stream": "一個Buffer流"
},
"status": {
"wrotefile": "寫入至文件: __file__",
"deletedfile": "刪除檔: __file__",
"appendedfile": "追加至文件: __file__"
},
"errors": {
"nofilename": "未指定檔案名",
"invaliddelete": "警告:無效刪除。請在配置對話方塊中使用特定的刪除選項",
"deletefail": "無法刪除檔: __error__",
"writefail": "無法寫入文件: __error__",
"appendfail": "無法追加到文件: __error__",
"createfail": "檔創建失敗: __error__"
},
"tip": "提示: 檔案名應該是絕對路徑否則它將相對於Node-RED進程的工作目錄。"
},
"split": {
"intro":"基於以下類型拆分<code>msg.payload</code>:",
"object":"<b>對象</b>",
"objectSend":"每個鍵值對作為單個消息發送",
"strBuff":"<b>字串</b> / <b>Buffer</b>",
"array":"<b>陣列</b>",
"splitUsing":"拆分使用",
"splitLength":"固定長度",
"stream":"作為消息流處理",
"addname":" 複製鍵到 "
},
"join":{
"mode":{
"mode":"模式",
"auto":"自動",
"merge":"合併序列",
"reduce":"縮減序列",
"custom":"手動"
},
"combine":"合併每個",
"create":"輸出為",
"type":{
"string":"字串",
"array":"陣列",
"buffer":"Buffer",
"object":"鍵值對對象",
"merged":"合併對象"
},
"using":"使用此值",
"key":"作為鍵",
"joinedUsing":"合併符號",
"send":"發送資訊:",
"afterCount":"達到一定數量的資訊時",
"count":"數量",
"subsequent":"和每個後續的消息",
"afterTimeout":"第一條消息的若干時間後",
"seconds":"秒",
"complete":"在收到存在<code>msg.complete</code>的消息後",
"tip":"此模式假定此節點與<i>split</i>相連, 或者接收到的消息有正確配置的<code>msg.parts</code>屬性.",
"too-many" : "join節點中有太多待定信息",
"merge": {
"topics-label":"合併主題",
"topics":"主題",
"topic" : "主題",
"on-change":"當收到一個新主題時發送已合併資訊"
},
"reduce": {
"exp": "Reduce運算式",
"exp-value": "exp",
"init": "初始值",
"right": "反向求值(從後往前)",
"fixup": "Fix-up exp"
},
"errors": {
"invalid-expr": "無效的JSONata運算式: __error__"
}
},
"sort" : {
"target" : "排序屬性",
"seq" : "資訊佇列",
"key" : "鍵值",
"elem" : "元素值",
"order" : "順序",
"ascending" : "昇冪",
"descending" : "降冪",
"as-number" : "作為數值",
"invalid-exp" : "sort節點中存在無效的JSONata運算式",
"too-many" : "sort節點中有太多待定信息",
"clear" : "清空sort節點中的待定資訊"
},
"batch" : {
"mode": {
"label" : "模式",
"num-msgs" : "按指定數量分組",
"interval" : "按時間間隔分組",
"concat" : "按主題分組"
},
"count": {
"label" : "分組數量",
"overlap" : "隊末隊首重疊數量",
"count" : "數量",
"invalid" : "無效的分組數量或重疊數量"
},
"interval": {
"label" : "時間間隔",
"seconds" : "秒",
"empty" : "無數據到達時發送空資訊"
},
"concat": {
"topics-label": "主題",
"topic" : "主題"
},
"too-many" : "batch節點中有太多待定信息",
"unexpected" : "未知模式",
"no-parts" : "資訊中沒有parts屬性"
}
}