Node.js 中如何使用 Node-RED 进行流程编排

什么是 Node-RED

Node-RED 是一个基于 Node.js 平台的可视化编程工具,由 IBM 开发。它提供了一种简单的方式来连接设备、Web API 和在线服务,并通过将它们拖放到操作面板上来创建一条基于流程的程序。Node-RED 的主要目标是提高互联设备间协作开发的效率,并使通信更加便捷高效。

安装和使用 Node-RED

Node-RED 的安装非常简单,只需要执行以下命令即可:

- ---- --- ------- -- ------------- --------

安装完成后,执行以下命令可启动 Node-RED:

- --------

默认情况下,Node-RED 会在本地 1880 端口上启动。

接下来,在浏览器中打开 http://localhost:1880,即可看到 Node-RED 的操作界面,开始进行流程编排。

如何使用 Node-RED 进行流程编排

在 Node-RED 中,每一个节点都代表一个操作或者处理的任务。流程就是将这些节点按照需求连接在一起的连线,形成一个完整的流程结构。比如下面这个简单的流程,就包含了 HTTP 请求、数据转换和将转换后的数据发送到数据库的操作:

节点和连线

通过拖拽节点和连线来创建流程,节点可以理解为一个个小的处理单元。

在节点面板左侧的区域中,有大量的内置节点以及第三方节点,可以通过搜索、收藏和安装插件的方式来获取并管理这些节点。下面是一些常用的节点类型:

  • 输入节点:读取外部数据,如文件、传感器、Web 服务等;
  • 处理节点:完成某些任务,如数据解析、格式化、计算等;
  • 输出节点:将处理结果返回给外部,如文件、数据库、Web API 等。

在节点面板右侧的区域中,可以设置节点的属性,如输入输出类型、目标地址、订阅地址、Json 数据等等。

节点之间的连线用来传递数据,每条连线都有一个指定的数据分组,同一组数据在流程中可以自由传递。对于一些节点也可以设置成不输出数据,或者没有数据输入的节点,这些节点通常称为流程控制节点。

除了使用拖拽的方式来创建节点和连线,还可以使用文本编程,搭配起来使用也更加灵活易用。这类似于 JavaScript 语言中链式代码的写法风格,可以通过简单的语法和关键字调用我们所需要的功能。

节点部署和测试

在流程编排完成后,需要部署流程。在部署时,Node-RED 会自动处理流程中的节点、连线、数据通道等等,使流程顺利高效地运行起来。部署后,可以通过 Debug 节点查看流程中的数据流程,也可以通过 Dashboard 节点构建交互界面。

为了测试流程,我们需要触发某一个节点,以查看或者验证流程的执行结果。通常情况下,我们都会使用 inject 节点作为流程的入口节点,它可以设置触发时间、数据、循环次数等属性。当 inject 节点被触发后,流程开始运行,我们可以通过 Debug 节点查看节点间的数据流以及流程的运行状态。

示例:用 Node-RED 实现一个简单的天气预报查询程序

下面是一个使用 Node-RED 实现的天气预报查询程序的流程,该程序从天气 API 接口读取天气并将其存储在 Redis 数据库中。

在这个例子中,我们使用了以下几种节点:

  • inject 节点:作为流程的入口,用于触发流程运行;
  • http request 节点:用于在 HTTP 中发起网络请求,获取天气数据;
  • JSON 节点:用于解析返回的 JSON 数据,抽离有效的天气信息;
  • switch 节点:用于根据天气信息的类型,切换存储流程;
  • Redis 节点:用于存储天气数据。

除此之外,我们还可以通过 Debug 节点,输出流程中的调试信息以及系统状态,以便分析和调试程序。同时,由于 Node-RED 是一个开源工具,拥有庞大的开发者社区,是一个令人惊叹的功能工具集。

总结

Node-RED 是一个轻量级的、易于使用的流程编排工具,它能够极大地简化并优化开发过程,提高开发效率。使用 Node-RED 可以快速地搭建任何业务流程,从而实现数据传递、数据处理、数据分析、数据呈现等多种功能,使得开发过程更加简单、容易和非常实用。

希望通过这篇文章,能够让读者深入了解 Node-RED 并掌握基本技能,进一步提高前端开发能力。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64ae51e048841e9894a538f6


猜你喜欢

  • PM2 使用心得及遇到的问题解决方式

    在前端开发中,代码的部署和管理是一个非常重要的环节。而使用 PM2 工具可以有效地管理 Node.js 的进程,并提供了强大的监控和自动化部署等功能,是一个很好的选择。

    1 年前
  • SSE 技术在实现分布式系统中的应用分析

    1. 简介 SSE(Server-Sent Events)技术是一种基于HTTP的服务器推送技术,用于实时向客户端发送更新和通知,可用于实现分布式系统中的消息传递和数据同步。

    1 年前
  • React 中如何使用 React-Intl 对日期进行本地化处理

    在多语言环境下,尤其是涉及日期和时间的情况下,本地化处理是非常重要的。React-Intl 是 React 的一个国际化组件库,它为 React 应用程序提供了帮助,使得国际化的处理变得容易。

    1 年前
  • 通过 ECMAScript 2017 的 Proxy 实现面向切面编程 (AOP)

    通过 ECMAScript 2017 的 Proxy 实现面向切面编程(AOP) 在前端开发中,我们经常需要做一些通用的操作,例如日志记录、性能监控、权限验证等等。

    1 年前
  • 避免 PWA 应用加载过慢的优化方式

    PWA 应用是当今前端技术中最为热门的应用之一,因为它可以让网页应用从运行在浏览器中变为全屏、离线、提供推送通知和原生应用体验的 Web 应用。因此,越来越多的开发者开始将他们的应用转换为 PWA 应...

    1 年前
  • Django REST framework 中实现认证和授权的扩展性

    Django REST framework 是一个流行的、基于 Django 开发的 Web API 框架。它提供了丰富的功能,包括认证和授权机制,用于保护 API 的安全性。

    1 年前
  • Webpack + Babel + ES6 开发环境搭建

    在前端开发中,使用最新的 ES6 语法可以使代码更加简洁易懂,同时使用模块化方式管理代码可以更好地维护项目。而 Webpack 和 Babel 则是现代前端开发中必不可少的工具,Webpack 可以帮...

    1 年前
  • 在 Jest 中使用 Jest Mock 进行依赖模拟

    前言 在前端领域中,单元测试是非常重要的环节,它可以帮助我们尽早发现代码中的问题,减少后期维护成本。Jest 是一款非常流行的 JavaScript 单元测试框架,它可以帮助我们快速、简便地编写单元测...

    1 年前
  • Docker 基础教程:镜像与容器

    什么是 Docker? Docker 是一个开源的应用容器引擎,可以轻松创建、部署和运行容器化应用程序。它适用于许多开发和生产场景,可以帮助开发者轻松地将应用部署到任何环境中。

    1 年前
  • Redux 源码解析并实战开发

    Redux 是一个非常流行的状态管理库,它被广泛应用于前端开发中。Redux 的核心是一个独立于任何 UI 库的状态管理器,通过它可以方便地管理应用程序中的数据流。

    1 年前
  • ES7 中的 String.prototype.trimStart 和 trimEnd 方法实现字符串去除空格

    ES7 中的 String.prototype.trimStart 和 trimEnd 方法实现字符串去除空格 在前端开发中,经常会遇到需要处理字符串的情况。处理字符串的过程中,常常需要对字符串进行去...

    1 年前
  • 在 Custom Elements 中使用 CSS Media Query 实现响应式布局

    什么是 Custom Elements Custom Elements 是 Web Components 规范的一部分,它允许我们创建自定义 HTML 标签,可以继承现有的 HTML 标签,或者从头开...

    1 年前
  • ECMAScript 2020:使用 Optional Chaining 操作符及 Nullish Coalescing 操作符处理 Javascript 函数

    Javascript 是一种广泛应用于 Web 开发的编程语言。它的语法非常灵活,但由于缺乏严格的类型检查机制,有时候代码中会存在一些难以处理的问题。为解决这些问题,ECMAScript 2020 中...

    1 年前
  • Express.js 中使用 JWT 进行身份验证的教程

    在现代 Web 应用中,用户认证和授权是不可或缺的一部分。传统的 cookie/session 认证机制可能会有一些问题,例如跨站攻击 (XSS) 和跨域攻击 (CSRF) 等。

    1 年前
  • Next.js 和 TypeScript 的完美结合

    Next.js 是一种基于 React 的服务端渲染框架,它的出现为开发者提供了一种既能快速构建页面,又能提高 SEO 的解决方案。而 TypeScript 则是一种 JavaScript 的强类型扩...

    1 年前
  • 使用 ESLint 检测代码风格

    在日常的前端开发工作中,保持代码风格的一致性是很重要的。我们经常会在一个团队中合作开发,如果每个人都有自己的代码风格,那么维护代码将会变得非常困难。这时候,使用 ESLint 检测代码风格就是一个不错...

    1 年前
  • Web Components 入门实践:如何利用 Shadow DOM 实现组件隔离

    Web Components 是一种 Web 开发的新趋势,它可以帮助开发者更加轻松、灵活地构建可复用的 UI 组件,从而让应用程序更加 modulized 和易于维护。

    1 年前
  • 使用 Fastify 构建 WebHooks 的完整教程

    什么是 WebHooks WebHooks 是一种 Web 技术,它允许应用程序在某个事件发生时发送 HTTP 通知给另一个应用程序。通常,接收此通知的应用程序将执行某些操作。

    1 年前
  • 利用 ECMAScript 2015 的 Proxy 和 Reflect 解决对象劫持的问题

    在前端开发中,对象劫持是一个常见的问题。当我们定义一个对象后,我们想要限制对象的属性被修改,或者在属性被修改之前进行一些额外的操作,此时,我们需要用到 ECMAScript 2015 的 Proxy ...

    1 年前
  • Vue.js 中使用 provide/inject 进行跨级组件通信

    在 Vue.js 中,提供了一种方便的跨级组件通信方式——provide/inject。本文将详细介绍 provide/inject 的使用方法,以及通过示例代码讲解其实现原理,帮助读者更好的理解 V...

    1 年前

相关推荐

    暂无文章