【问题标题】:Send data on configuration发送配置数据
【发布时间】:2017-01-10 10:58:36
【问题描述】:

我想在配置时向节点发送异步数据。我想要 执行 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 来做到这一点,但是,这是一个好主意吗?它可用吗?你知道任何解决方案吗?

【问题讨论】:

    标签: javascript node.js node-red


    【解决方案1】:

    Node-RED 中使用的标准模型是让节点注册自己的管理 http 端点,该端点可用于查询所需的信息。您可以通过 Serial 节点看到这一点。

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

    节点在此处注册管理端点: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 中间件可确保只有经过身份验证的用户才能访问端点。权限的格式应为<node-type>.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
    });
    

    要点:

    • 此处的 url 不能以 / 开头。这样可以确保请求是相对于编辑器从哪里提供的 - 你不能假设它是从 / 提供的。

    【讨论】:

    • Knolleary,当我们说节点类型时,这意味着我们注册节点的名称吗?就像我有“RED.nodes.registerType('customnodeList', 所以需要的权限将是 customnodeList.read?我试过这个但是当我尝试访问 URL 时总是未经授权
    • 忽略这最后一条评论,我发现你不能直接访问它,你必须使用它使用 get JSON 来工作谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多