node-red 中没有生成节点
no node generated in node-red
我尝试解决中出现的问题
Node-red: custom nodes waiting for missing types
通过创建一个新节点。
我尝试使用 "mqtt.js example" 获取预配置的 mqtt-client/subscriber 以添加到我的调色板中。
所以在节点文件夹中我有一个名为 mqttConfig.json 的配置文件,其中放置了 mqtt.js 用于建立连接的所有数据(即代理、主题、qos ...) ,这个文件的结构和上一个一样。
{
"receiver": {
"broker":"127.0.0.1",
"topic":"topicRec",
"qos":"2"
}
}
然后我创建新的 preconf_mqtt.js 即:
var mqtt = require("/usr/local/lib/node_modules/node-red/node_modules/mqtt");
var mqttConfig = require("mqttConfig");
'use strict'
module.exports = function(RED)
{
function ConfiguredMqttOutNode(config)
{
RED.nodes.createNode(this,config);
var node = this;
var m = mqttConf.receiver;
this.topic = m.topic;
this.qos = parseInt(m.qos);
if (isNaN(this.qos) || this.qos < 0 || this.qos > 2)
this.qos = 2;
this.broker = m.broker;
this.client = mqtt.connect(this.broker);
this.client.subscribe(this.topic);
this.client.on('message', function (topic, message) {
var msg = {};
msg.topic = this.topic;
msg.payload = JSON.stringify(message);
node.send(msg);
});
}
RED.nodes.registerType("configured-mqtt-out",ConfiguredMqttOutNode);
}
而 preconf_mqtt.html 即:
<script type="text/javascript">
RED.nodes.registerType('configured-mqtt-out',{
category: 'processing',
color: '#a6bbcf',
defaults: {
name: {value:""}
},
inputs:0,
outputs:1,
icon: "bridge.png",
label: function()
{
return this.name||"c-mqtt-out";
}
});
</script>
<script type="text/x-red" data-template-name="configured-mqtt-out">
<div class="form-row">
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/x-red" data-help-name="configured-mqtt-out">
<p>Pre-configured MQTT subscriber</p>
</script>
无论我何时尝试安装程序:
ute@preprocnr:~/.node-red$ sudo npm install /home/ute/mqtt_rules_definer
> node-red-dashboard@2.9.1 postinstall /home/ute/.node-red/node_modules/node-red-dashboard
> node fixfa.js
node-red-project@0.0.1 /home/ute/.node-red
├─┬ mqtt@2.18.0
│ ├─┬ concat-stream@1.6.2
│ │ └─┬ readable-stream@2.3.6
│ │ ├── isarray@1.0.0
│ │ └── string_decoder@1.1.1
│ ├─┬ help-me@1.1.0
│ │ ├─┬ glob-stream@6.1.0
│ │ │ ├─┬ ordered-read-streams@1.0.1
│ │ │ │ └─┬ readable-stream@2.3.6
│ │ │ │ ├── isarray@1.0.0
│ │ │ │ └── string_decoder@1.1.1
│ │ │ ├─┬ pumpify@1.5.0
│ │ │ │ └── pump@2.0.1
│ │ │ └─┬ readable-stream@2.3.6
│ │ │ ├── isarray@1.0.0
│ │ │ └── string_decoder@1.1.1
│ │ └─┬ through2@2.0.3
│ │ └─┬ readable-stream@2.3.6
│ │ ├── isarray@1.0.0
│ │ └── string_decoder@1.1.1
│ ├─┬ mqtt-packet@5.6.0
│ │ └─┬ bl@1.2.2
│ │ └─┬ readable-stream@2.3.6
│ │ ├── isarray@1.0.0
│ │ └── string_decoder@1.1.1
│ ├─┬ readable-stream@2.3.6
│ │ ├── isarray@1.0.0
│ │ └── string_decoder@1.1.1
│ └─┬ websocket-stream@5.1.2
│ ├─┬ duplexify@3.6.0
│ │ └─┬ readable-stream@2.3.6
│ │ ├── isarray@1.0.0
│ │ └── string_decoder@1.1.1
│ └─┬ readable-stream@2.3.6
│ ├── isarray@1.0.0
│ └── string_decoder@1.1.1
├── mqtt_rules_definer@1.0.0 extraneous
├── node-red-dashboard@2.9.1 extraneous
└── rule-definer@1.0.0 extraneous
npm WARN node-red-project@0.0.1 No repository field.
npm WARN node-red-project@0.0.1 No license field.
ute@preprocnr:~/.node-red$ node-red
当我启动它时,node-red 没有显示任何特定的 error/warning:
16 May 15:21:23 - [info]
Welcome to Node-RED
===================
16 May 15:21:23 - [info] Node-RED version: v0.18.4
16 May 15:21:23 - [info] Node.js version: v4.2.6
16 May 15:21:23 - [info] Linux 4.4.0-124-generic x64 LE
16 May 15:21:23 - [info] Loading palette nodes
16 May 15:21:23 - [info] Dashboard version 2.9.1 started at /ui
16 May 15:21:23 - [warn] ------------------------------------------------------
16 May 15:21:23 - [warn] [node-red/rpi-gpio] Info : Ignoring Raspberry Pi
specific node
16 May 15:21:23 - [warn] [node-red-node-twitter/twitter] ReferenceError:
Invalid left-hand side in assignment
16 May 15:21:23 - [warn] ------------------------------------------------------
16 May 15:21:23 - [info] Settings file : /home/ute/.node-red/settings.js
16 May 15:21:23 - [info] User directory : /home/ute/.node-red
16 May 15:21:23 - [info] Server now running at http://127.0.0.1:1880/
16 May 15:21:23 - [info] Active project : pre-proc
16 May 15:21:23 - [info] Flows file : /home/ute/.node-red/projects/pre- proc/preprocessor.json
但是我的调色板中没有该节点,我不知道如何修复它。
请帮我,
亲切的问候,
詹卢卡
[编辑]
我忘了在包中添加节点:S
我有它,然后我收到以下警告,开始 node-red:
16 May 16:36:41 - [warn] ------------------------------------------------------
16 May 16:36:41 - [warn] [node-red/rpi-gpio] Info : Ignoring Raspberry Pi specific node
16 May 16:36:41 - [warn] [node-red-node-twitter/twitter] ReferenceError:
Invalid left-hand side in assignment
16 May 16:36:41 - [warn] [mqtt_rules_definer/mqtt_rules_definer] SyntaxError: Unexpected token .
16 May 16:36:41 - [warn] ------------------------------------------------------
并且没有生成节点...
错误消息非常清楚,您的 mqtt_rules_definer.js
文件中存在语法错误(您的代码中某处错放了 .
)。您需要在 Node-RED 加载它之前解决此问题。
找出问题出在哪一行的最快方法是执行如下操作:
- 切换到 ~/.node-red 目录
- 运行命令后没有文件的节点
$ node
这将启动一个交互式 shell,然后您可以在其中输入以下内容:
require('mqtt_rules_definer')
- 这应该会打印一个堆栈跟踪,其中包含错误在文件中的位置的详细信息。
我尝试解决中出现的问题 Node-red: custom nodes waiting for missing types 通过创建一个新节点。
我尝试使用 "mqtt.js example" 获取预配置的 mqtt-client/subscriber 以添加到我的调色板中。
所以在节点文件夹中我有一个名为 mqttConfig.json 的配置文件,其中放置了 mqtt.js 用于建立连接的所有数据(即代理、主题、qos ...) ,这个文件的结构和上一个一样。
{
"receiver": {
"broker":"127.0.0.1",
"topic":"topicRec",
"qos":"2"
}
}
然后我创建新的 preconf_mqtt.js 即:
var mqtt = require("/usr/local/lib/node_modules/node-red/node_modules/mqtt");
var mqttConfig = require("mqttConfig");
'use strict'
module.exports = function(RED)
{
function ConfiguredMqttOutNode(config)
{
RED.nodes.createNode(this,config);
var node = this;
var m = mqttConf.receiver;
this.topic = m.topic;
this.qos = parseInt(m.qos);
if (isNaN(this.qos) || this.qos < 0 || this.qos > 2)
this.qos = 2;
this.broker = m.broker;
this.client = mqtt.connect(this.broker);
this.client.subscribe(this.topic);
this.client.on('message', function (topic, message) {
var msg = {};
msg.topic = this.topic;
msg.payload = JSON.stringify(message);
node.send(msg);
});
}
RED.nodes.registerType("configured-mqtt-out",ConfiguredMqttOutNode);
}
而 preconf_mqtt.html 即:
<script type="text/javascript">
RED.nodes.registerType('configured-mqtt-out',{
category: 'processing',
color: '#a6bbcf',
defaults: {
name: {value:""}
},
inputs:0,
outputs:1,
icon: "bridge.png",
label: function()
{
return this.name||"c-mqtt-out";
}
});
</script>
<script type="text/x-red" data-template-name="configured-mqtt-out">
<div class="form-row">
<label for="node-input-name"><i class="icon-tag"></i> Name</label>
<input type="text" id="node-input-name" placeholder="Name">
</div>
</script>
<script type="text/x-red" data-help-name="configured-mqtt-out">
<p>Pre-configured MQTT subscriber</p>
</script>
无论我何时尝试安装程序:
ute@preprocnr:~/.node-red$ sudo npm install /home/ute/mqtt_rules_definer
> node-red-dashboard@2.9.1 postinstall /home/ute/.node-red/node_modules/node-red-dashboard
> node fixfa.js
node-red-project@0.0.1 /home/ute/.node-red
├─┬ mqtt@2.18.0
│ ├─┬ concat-stream@1.6.2
│ │ └─┬ readable-stream@2.3.6
│ │ ├── isarray@1.0.0
│ │ └── string_decoder@1.1.1
│ ├─┬ help-me@1.1.0
│ │ ├─┬ glob-stream@6.1.0
│ │ │ ├─┬ ordered-read-streams@1.0.1
│ │ │ │ └─┬ readable-stream@2.3.6
│ │ │ │ ├── isarray@1.0.0
│ │ │ │ └── string_decoder@1.1.1
│ │ │ ├─┬ pumpify@1.5.0
│ │ │ │ └── pump@2.0.1
│ │ │ └─┬ readable-stream@2.3.6
│ │ │ ├── isarray@1.0.0
│ │ │ └── string_decoder@1.1.1
│ │ └─┬ through2@2.0.3
│ │ └─┬ readable-stream@2.3.6
│ │ ├── isarray@1.0.0
│ │ └── string_decoder@1.1.1
│ ├─┬ mqtt-packet@5.6.0
│ │ └─┬ bl@1.2.2
│ │ └─┬ readable-stream@2.3.6
│ │ ├── isarray@1.0.0
│ │ └── string_decoder@1.1.1
│ ├─┬ readable-stream@2.3.6
│ │ ├── isarray@1.0.0
│ │ └── string_decoder@1.1.1
│ └─┬ websocket-stream@5.1.2
│ ├─┬ duplexify@3.6.0
│ │ └─┬ readable-stream@2.3.6
│ │ ├── isarray@1.0.0
│ │ └── string_decoder@1.1.1
│ └─┬ readable-stream@2.3.6
│ ├── isarray@1.0.0
│ └── string_decoder@1.1.1
├── mqtt_rules_definer@1.0.0 extraneous
├── node-red-dashboard@2.9.1 extraneous
└── rule-definer@1.0.0 extraneous
npm WARN node-red-project@0.0.1 No repository field.
npm WARN node-red-project@0.0.1 No license field.
ute@preprocnr:~/.node-red$ node-red
当我启动它时,node-red 没有显示任何特定的 error/warning:
16 May 15:21:23 - [info]
Welcome to Node-RED
===================
16 May 15:21:23 - [info] Node-RED version: v0.18.4
16 May 15:21:23 - [info] Node.js version: v4.2.6
16 May 15:21:23 - [info] Linux 4.4.0-124-generic x64 LE
16 May 15:21:23 - [info] Loading palette nodes
16 May 15:21:23 - [info] Dashboard version 2.9.1 started at /ui
16 May 15:21:23 - [warn] ------------------------------------------------------
16 May 15:21:23 - [warn] [node-red/rpi-gpio] Info : Ignoring Raspberry Pi
specific node
16 May 15:21:23 - [warn] [node-red-node-twitter/twitter] ReferenceError:
Invalid left-hand side in assignment
16 May 15:21:23 - [warn] ------------------------------------------------------
16 May 15:21:23 - [info] Settings file : /home/ute/.node-red/settings.js
16 May 15:21:23 - [info] User directory : /home/ute/.node-red
16 May 15:21:23 - [info] Server now running at http://127.0.0.1:1880/
16 May 15:21:23 - [info] Active project : pre-proc
16 May 15:21:23 - [info] Flows file : /home/ute/.node-red/projects/pre- proc/preprocessor.json
但是我的调色板中没有该节点,我不知道如何修复它。 请帮我, 亲切的问候, 詹卢卡
[编辑] 我忘了在包中添加节点:S 我有它,然后我收到以下警告,开始 node-red:
16 May 16:36:41 - [warn] ------------------------------------------------------
16 May 16:36:41 - [warn] [node-red/rpi-gpio] Info : Ignoring Raspberry Pi specific node
16 May 16:36:41 - [warn] [node-red-node-twitter/twitter] ReferenceError:
Invalid left-hand side in assignment
16 May 16:36:41 - [warn] [mqtt_rules_definer/mqtt_rules_definer] SyntaxError: Unexpected token .
16 May 16:36:41 - [warn] ------------------------------------------------------
并且没有生成节点...
错误消息非常清楚,您的 mqtt_rules_definer.js
文件中存在语法错误(您的代码中某处错放了 .
)。您需要在 Node-RED 加载它之前解决此问题。
找出问题出在哪一行的最快方法是执行如下操作:
- 切换到 ~/.node-red 目录
- 运行命令后没有文件的节点
$ node
这将启动一个交互式 shell,然后您可以在其中输入以下内容:
require('mqtt_rules_definer')
- 这应该会打印一个堆栈跟踪,其中包含错误在文件中的位置的详细信息。