当前位置:  开发笔记 > 编程语言 > 正文

发送配置数据

如何解决《发送配置数据》经验,为你挑选了1个好方法。

我想将异步数据发送到配置中的节点。我想执行一个SQL请求以列出中的一些数据。

创建节点时,将执行服务器端功能

完成后,回调将数据发送到节点配置

在节点配置上,当接收到数据时,将创建列表

另外,二进制文件可以每隔x分钟请求数据库并创建一个缓存,每个节点将在创建时使用该缓存,这将删除代码的异步部分,即使不再“实时更新”也是如此。

实际上,我陷入困境是因为我创建了查询并将其添加如下:

module.exports = function(RED) {
    "use strict";
    var db = require("../bin/database")(RED);

    function testNode(n) {
        // Create a RED node
        RED.nodes.createNode(this,n);

        // Store local copies of the node configuration (as defined in the 
.html
        var node = this;
        var context = this.context();


        this.on('input', function (msg) {
            node.send({payload: true});
        });
    }

    RED.nodes.registerType("SQLTEST",testNode);
}

但是我不知道如何将数据传递到配置节点。我想到了Socket.IO可以做到这一点,但这是一个好主意并且可用吗?你知道什么解决方案吗?



1> knolleary..:

Node-RED中使用的标准模型用于节点注册其自己的admin http端点,该端点可用于查询其所需的信息。您可以在“串行”节点上看到此操作。

串行节点编辑对话框列出了当前连接的串行设备供您选择。

节点在此处注册管理端点:https : //github.com/node-red/node-red-nodes/blob/83ea35d0ddd70803d97ccf488d675d6837beeceb/io/serialport/25-serial.js#L283

RED.httpAdmin.get("/serialports", RED.auth.needsPermission('serial.read'), function(req,res) {
    serialp.list(function (err, ports) {
        res.json(ports);
    });
});

关键点:

选择一个命名空间为您的节点类型的URL-这样可以避免冲突

needsPermission中间件是有,以确保只有合法的用户才能访问端点。许可应采用形式.read

然后其编辑对话框从此处查询该端点:https : //github.com/node-red/node-red-nodes/blob/83ea35d0ddd70803d97ccf488d675d6837beeceb/io/serialport/25-serial.html#L240

$.getJSON('serialports',function(data) {
    //... does stuff with data
});

关键点:

此处的网址不得以开头/。这样可以确保相对于从何处提供编辑器都可以发出请求-您不能假定从那里提供该请求/

推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有