基于Linux创建简单的Node-RED节点
参考自:官方文档
概述
由于一个Node-RED节点需要包含三类文件
- 一个定义节点功能的 JavaScript 文件,
- 一个 html 文件,用于定义节点的属性、编辑对话框和帮助文本。
- 文件用于将其全部打包为 npm 模块。package.json
创建一个目录,在该目录中,创建以下文件:
- package.json
- lower-case.js
- lower-case.html
package.json
这是 Node.js 模块用来描述其内容的标准文件。生成此文件使用如下命令
npm init
并根据提示将文件命名为node-red-contrib-example-lower-case
其他提示可以按回车键默认
生成后,还必须添加一个部分:node-red
{ "name" : "node-red-contrib-example-lower-case", ... "node-red" : { "nodes": { "lower-case": "lower-case.js" } } }
lower-case.js
创建lower-case.js文件
module.exports = function(RED) { function LowerCaseNode(config) { RED.nodes.createNode(this,config); var node = this; node.on('input', function(msg) { msg.payload = msg.payload.toLowerCase(); node.send(msg); }); } RED.nodes.registerType("lower-case",LowerCaseNode); }
lower-case.html
创建lower-case.html文件
<script type="text/javascript"> RED.nodes.registerType('lower-case',{ category: 'function', color: '#a6bbcf', defaults: { name: {value:""} }, inputs:1, outputs:1, icon: "file.png", label: function() { return this.name||"lower-case"; } }); script> <script type="text/html" data-template-name="lower-case"> <div class="form-row"> <label for="node-input-name"><i class="fa fa-tag"></i> Name</label> <input type="text" id="node-input-name" placeholder="Name"> </div> script> <script type="text/html" data-help-name="lower-case"> <p>A simple node that converts the message payloads into all lower-case characters</p> script>
在 Node-RED 中测试节点
进入到node-red的安装目录下,运行npm install <上面的三个文件的目录路径>
# 进入到node-red目录 cd ~/.node-red # 使用npm打包上面三个文件的目录 npm install ~/dev/node-red-contrib-example-lower-case
运行成功后,在node-red的下的node_modules目录下,能看到生成的node-red-contrib-example-lower-case
重新启动 Node-RED ,可以查看到我们自定义的节点了