Node-RED教程(七):Node-RED存储节点的使用

Node-RED系列文章目前已经写了16篇,介绍了Node-RED的安装以及默认安装的一些基本节点的使用,作为物联网的一个可视化拖动的流程,Node-RED的确实很容易上手。还没开始学习的同学可以先看下我以前的文章。

Node-RED教程(七):Node-RED存储节点的使用

上一期我们讲到了Node-RED中解析parser分类节点的使用,利用解析节点我们可以对csv,html,json,xml,yaml文件进行解析。获取一些格式化内容。

本篇文章我来给大家讲一下Node-RED中存储file分类下的节点,该分类下有4个节点,

  • file 将msg.payload写入文件,添加到末尾或替换现有内容。或者,它也可以删除文件。
  • file in 以字符串或二进制缓冲区的形式读取文件的内容。
  • watch 监视目录或文件中的更改。
  • tail 监听一个文件被添加的内容

file

该节点是将msg.payload写入文件,添加到末尾或替换现有内容。或者,它也可以删除文件。
输入 filename, 也可以配置,如果没有该目录,则自动创建。写入完成后,输入消息将发送到输出端口

每个消息的有效荷载将添加到文件的末尾,可以选择在每个消息之间添加一个换行符(\n)。

如果使用msg.filename,则每次写入后文件都会关闭。为了获得最佳体验,请使用固定的文件名。

可以将其配置为覆盖整个文件,而不是在文件后添加段落。例如,在将二进制数据写入文件(例如图像)时,应使用此选项,并且应禁用添加换行符的选项。

可以从编码列表中指定写入文件的数据编码。

您可以将此节点配置为删除文件

file in

该节点能以字符串或二进制缓冲区的形式读取文件的内容。
输入 filename 如果未在节点配置中设置,该属性可以选择要读取的文件名。
输入
payload 文件的内容可以是字符串,也可以是二进制的buffer。
filename 如果未在节点配置中设置,该属性可以选择要读取的文件名。

watch

该节点用于监视目录或文件中的更改。

您可以输入用逗号分隔的目录和/或文件的列表。您需要在所有带有空格的地方加上引号“…”。

在Windows上,必须在任何目录名称中使用双反斜杠\。

实际更改的文件的完整文件名将放入msg.payload和msg.filename中,而监视列表的字符串化版本将在msg.topic中返回。

msg.file仅包含已更改文件的短文件名。msg.type更改了事物的类型,通常是file或directory,而msg.size保留了文件的大小(以字节为单位)。

当然,在Linux中,everything也是一个文件,因此可以监视

注意:该目录或文件必须存在才能被监视。如果文件或目录被删除,即使重新创建它也可能不再被监视。

tail

监听已配置文件中被添加的内容。
在Windows上你需要根本文件的写入和更新注册。
输出的是UTF-8的字符,或者二进制文件流

完整的流配置

// 代码归“拿我格子衫来”所属
[
    {
        "id": "c9eae563.294d18",
        "type": "tab",
        "label": "流程 3",
        "disabled": false,
        "info": ""
    },
    {
        "id": "738ced86.140b84",
        "type": "file",
        "z": "c9eae563.294d18",
        "name": "追加到12.txt",
        "filename": "12.txt",
        "appendNewline": true,
        "createDir": false,
        "overwriteFile": "false",
        "encoding": "none",
        "x": 490,
        "y": 260,
        "wires": [
            [
                "921006b.457b4f8"
            ]
        ]
    },
    {
        "id": "8dee2a6f.831118",
        "type": "inject",
        "z": "c9eae563.294d18",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "我是被追加的",
        "payloadType": "str",
        "x": 190,
        "y": 260,
        "wires": [
            [
                "738ced86.140b84",
                "3576d67e.f638fa"
            ]
        ]
    },
    {
        "id": "921006b.457b4f8",
        "type": "debug",
        "z": "c9eae563.294d18",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": true,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 750,
        "y": 260,
        "wires": []
    },
    {
        "id": "3576d67e.f638fa",
        "type": "file in",
        "z": "c9eae563.294d18",
        "name": "读取12.txt",
        "filename": "12.txt",
        "format": "utf8",
        "chunk": false,
        "sendError": false,
        "encoding": "none",
        "x": 500,
        "y": 400,
        "wires": [
            [
                "921006b.457b4f8"
            ]
        ]
    },
    {
        "id": "b231a4b7.143ea8",
        "type": "watch",
        "z": "c9eae563.294d18",
        "name": "监听12.txt文件",
        "files": "12.txt",
        "recursive": "",
        "x": 500,
        "y": 620,
        "wires": [
            [
                "7fba4883.304338"
            ]
        ]
    },
    {
        "id": "7fba4883.304338",
        "type": "debug",
        "z": "c9eae563.294d18",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": true,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 750,
        "y": 620,
        "wires": []
    },
    {
        "id": "fdf417e5.6c4db8",
        "type": "tail",
        "z": "c9eae563.294d18",
        "name": "监听并获取12.txt内容",
        "filetype": "text",
        "split": "[\\r]{0,1}\\n",
        "filename": "12.txt",
        "inputs": 0,
        "x": 500,
        "y": 700,
        "wires": [
            [
                "d8ada19c.f13ec"
            ]
        ]
    },
    {
        "id": "d8ada19c.f13ec",
        "type": "debug",
        "z": "c9eae563.294d18",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": true,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 770,
        "y": 700,
        "wires": []
    }
]

拿我格子衫来 CSDN认证博客专家 拿我格子衫来 范马勇次郎 琦玉君
积土成山,风雨兴焉;积水成渊,蛟龙生焉;积善成德,而神明自得,圣心备焉。故不积跬步,无以至千里;不积小流,无以成江海。骐骥一跃,不能十步;驽马十驾,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也。
<p> <span style="color:#313d54;font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;font-size:16px;background-color:#ffffff;">Node-RED是工业网物联网的重要组成部分,我最开始接触Node-RED,也算是一个偶然的机会吧,上班后领导安排我的第一个任务就是调研一下Node-RED,我之后上网查了一下,那个时候网上相对于Node-RED的资料也比较少,只知道它是IBM公司的一个开源项目。直到最近,发现许多大公司的产品都支持Node-RED,比如西门子公司的IoT2000,研华公司的WISE PaaS 网关,美国OPTO 22等设备中都安装了Node-RED,表明它在工业物联网和控制中已经广泛应用了。</span> </p> <p> <img src="https://img-bss.csdnimg.cn/202010200935441926.png" alt="" width="1316" height="524" /> </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> 那么工业物联网为什么要用它?它又处于工业物联网那个层次?它具有哪些特性?它帮助物联网解决了什么问题?为什么说它是柔性动态可重构的解决方案呢? </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;">   </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;">   </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> 本门课程,老师将带领你从Node-RED的发展,工业物联网定位开始讲解,并带领着大家进行手把手安装Node-RED,实际操作演练Node-RED,并搭建一个物联网小平台,给大家带来更好的学习效果。 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> <img src="https://img-bss.csdnimg.cn/202010200936289051.png" alt="" width="1841" height="948" /> </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> <img src="https://img-bss.csdnimg.cn/202010200936561564.png" alt="" width="1920" height="977" /> </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;">   </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;">   </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> 为了能够让小伙伴们快速了解本门课程的结构,本门课程从以下几个方面展开: </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED入门 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED安装与配置 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED教学实战 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED的优势与不足 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED能为我们带来什么 </p> <p style="font-family:'Helvetica Neue', Helvetica, 'Hiragino Sans GB', Arial, sans-serif;color:#313d54;font-size:16px;background-color:#ffffff;"> Node-RED总结与展望 </p>
相关推荐
<p> 本课程通过一步步的实践演示,带领大家在开源项目的基础上,搭建随心所欲的物联网与智能家居平台。在过程实践中,大家会学习与应用到linux、python、云服务、图像识别、智能语音、单片机、数据库、前端开发等多方面的知识,帮助大家成为IT的全栈工程师。以实战为导向结合物联网各类知识要点学习经典框架进行项目实战,快速掌握智能家居、家庭自动化、物联网等必备基础与实战技巧。带你从零玩转智能家居,了解物联网的整体格局,将零散的知识点通过项目快速串联提升自身成就感 </p> <p> 【更新规则】<br />  视频与参考文档内容,随时更新,与最新的软件版本/云服务环境匹配。 </p> <p> <br /> </p> <p> 【课程特色】<br /> 1.通俗易懂,快速入门<br /> 对物联网、智能家居学习经典实践项目结合技术推导进行形象解释,实例演示。<br /> 2. Python主导,实用高效<br /> 使用物联网领域最主流语言Python及其homeassistant 开源家庭自动化框架作为课程核心工具。<br /> 3. 案例为师,实战护航<br /> 基于真实操作展示,从零开始结合homeassistant与python自创组件、树莓派或者nas完成整个案例实战。<br /> 4. 持续更新,一劳永逸<br /> 会伴随homeassistant的更新与DIY实战项目课程会支持更新下去,逐步加入更多算法与案例。 </p> <p> <br /> </p> <p> 【联系我们】<br /> 官方网站:https://www.hachina.io<br /> QQ学习讨论群(仅限学员加入):741140729 </p> <p> <img src="https://img-bss.csdn.net/201907040403375571.jpg" alt="" /> </p> <p> <br /> </p>
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页