- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想通过单击按钮启动我的 Node ,这样我就不必将注入(inject) Node 放在前面。如何在 javascript 文件中注册按钮点击?
我尝试将 node.on("input", async function(msg){/*some code*/})
放入我注册 Node 的 javascript 文件中。我能够添加此按钮 通过这个:
//HTML file script
<script type="text/javascript">
RED.nodes.registerType('light', {
category: "input",
color: "#f3c12b",
defaults: {
name: {value: ""},
plus: {value: ""},
topic: {value: this.name},
payload: {value: ""}
},
inputs: 0,
outputs: 1,
label: function(){
return "Licht '"+this.name+"'" || "Licht";
},
button: {
enabled: function(){
return true;
},
onclick: function(){
//I´ve put the code here, but then I have to reconfigure my functions
}
}
});
</script>
//Javascript file --> register function
//Not getting any response
node.on("input", async function(msg) {
msg = {};
msg.topic = this.topic;
msg.payload = "This is a new message!";
node.send(msg);
});
我原以为,当我单击此 Node 时, Node 正在发送消息,但 Node 没有任何响应。
最佳答案
这里最好的办法是查看注入(inject) Node 源代码。 inject.html inject.js
在注入(inject) Node 的情况下,HTML 文件中按钮参数的 onclick 函数实际上对服务器上的 /inject/{id}
执行 POST 调用。
onclick: function() {
...
var node = this;
$.ajax({
url: "inject/"+this.id,
type:"POST",
success: function(resp) { ... }
});
}
在服务器上运行的注入(inject) JS 文件在 /inject/:id
托管一个 http 端点,当它被调用时通过 id 获取 Node 并调用 node.receive()
作为其输入的触发器。
module.exports = function(RED) {
...
RED.httpAdmin.post("/inject/:id", RED.auth.needsPermission("inject.write"), function(req,res) {
var node = RED.nodes.getNode(req.params.id);
...
node.receive();
...
});
}
关于javascript - 如何在 NodeRED 中创建自定义注入(inject) Node ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57148641/
我正在使用通过 docker 部署的 NodeRed 进行项目,我想保存我的部署状态,包括流程、设置和新添加的模块,以便我可以保存图像并将其加载到另一台复制完全相同 NodeRed 的主机上实例。 我
我正在尝试将以下内容发送到 NodeRED.. this.user= { medName1: '', medTime1: '' },
当我尝试在 nodered 上绘制饼图时,颜色始终为黑色。我正在使用 dashboard-ui Node 。缺少什么?或者在 nodered ui 上绘制饼图的最佳方法是什么? msg.payload
我对 Nodejs 比较陌生,我在函数 Node 内的代码如下所示, var temper=parseInt(msg.payload.temperature); temp=temper; var se
我想从 NodeRed mysql 节点中退出。 这里是连接图片: 选择查询是: msg.topic = "SELECT * t.TableID FROM booking t where t.book
我正在尝试收集从 AngularJS 发送到 NodeRED 数组的字符串。 AngularJS 代码如下所示 this.user = { medName1: '', me
我想通过单击按钮启动我的 Node ,这样我就不必将注入(inject) Node 放在前面。如何在 javascript 文件中注册按钮点击? 我尝试将 node.on("input", async
我正在尝试在 NodeRed 中生成一个 HTTP Webrequest,它将通过正常的上传表单将文件上传到网站。我想我知道如何上传文件,但我不知道如何传递我还必须填写的其他输入字段。 我只找到了如何
当我在红色节点中收到带有 msg.payload 的最终消息时,我得到“9f1c56018530012421409d9c10582007” 如何过滤掉消息中的引号?运输。 有人知道如何将它们从实际有效
我目前正在 Node-RED 上实现一个流程,其中 MQTT 订阅者 Node 将数据发送到 kafka 生产者 Node ,即 Node-RED 上的输出 Node 。 如果 Kafka 生产者 N
我在 Bluemix 上使用 Starter Boilerplate 创建了一个 NodeRed 应用程序。我注意到的一件事是我的 Flow Editor 对公众可用(即匿名访问可以编辑我的节点和部署
我正在尝试在 nodered 中为我的树莓派 pi3 安装传感器 Node 。该传感器为空气质量传感器SDS011,安装命令如下: npm install node-red-contrib-sds01
我知道 WebSocket api 没有定义 header 。 根据this我们可以通过 URL 设置基本身份验证。 ws = new WebSocket("ws://username:passwor
我是一名优秀的程序员,十分优秀!