前言

Node-RED 是一个基于流的编程工具,由 Node.js 开发。 该工具主要用于连接物联网设备和软件应用。 但是,它不仅可以覆盖物联网,还可以覆盖标准的 web 应用。

Node-RED 正在扩展为一个无代码/低代码编程工具。 这本书涵盖了如何使用它的基础知识,包括从版本 1.2 中发布的新特性,以及高级教程。

本书是写给谁的

这本书最适合那些第一次使用无代码/低代码编程工具学习软件编程的人。 Node-RED 是一个基于流的编程工具,它可以为任何软件应用轻松构建 web 应用,如物联网数据处理、标准 web 应用、web api 等。 因此,本书将帮助 web 应用开发人员和物联网工程师。

本书的内容

第一章介绍 Node-RED 和基于流的编程,告诉我们什么是 Node-RED。 内容还涉及了基于流的编程,解释了为什么开发 Node-RED 以及它的用途。 理解这个新工具 Node-RED 有助于改善我们的编程体验。

第二章设置开发环境,介绍了通过安装 Node-RED 来设置开发环境。 Node.js 可以运行,如 Windows, macOS, Rasberry Pi OS 等等。 我们通过命令行或使用安装程序在每个环境中安装 Node-RED。 本章涵盖了特定操作系统的重要注意事项。

第三章通过创建基本流了解 Node-RED 特性,教给我们 Node-RED 的基本用法。 在 Node-RED 中,各种函数与称为节点的部件一起使用。 在 Node-RED 中,我们使用称为流的概念创建应用,就像工作流一样。 我们将通过组合基本节点来创建一个示例流。

第四章学习主要节点,教我们如何利用更多的节点。 我们不仅会了解 Node-RED 默认提供的节点,还会了解社区在互联网上发布的各种节点如何获取和使用。

第五章,在本地实现 Node-RED,教给我们在本地环境(桌面环境)中利用 Node-RED 的最佳实践。 由于 Node-RED 是一个基于 Node.js 的工具,它擅长构建服务器端应用。 然而,服务器并不只是在网络之外。 通过在边缘设备(如树莓派)的本地环境的虚拟运行时中使用 Node-RED,可以更方便地使用它。

第六章,在云中实现 Node-RED,教给我们在云平台上利用 Node-RED 的最佳实践。 由于 Node-RED 是一个基于 Node.js 的工具,它擅长构建服务器端应用。 在任何云平台上使用 Node-RED 都可以更方便地使用它,因此我们将使用 IBM cloud 上的 Node-RED 作为云平台的用例之一。

第七章从 Node-RED 调用 Web API,教我们如何使用 Node-RED 的 Web API。 为了最大限度地提高 web 应用的吸引力,与各种 web api 链接是必要的。 它的应用开发架构在 Node-RED 中也不例外。 理解从普通 Node.js 应用调用 web API 和从 Node-RED 调用 web API 之间的区别可以帮助我们最大限度地利用 Node-RED。

第八章在 Git 中使用项目特性,教我们如何在 Node-RED 中使用源代码版本控制工具。 通过 Node-RED,项目功能在版本 1 中可用。 x 和。 项目功能可以基于 Git 与各个源代码版本控制工具进行链接。 通过使用存储库对流程进行版本控制,我们的开发将会加速。

第九章create a ToDo Application with Node-RED介绍如何使用 Node-RED 开发标准的 web 应用。 这里的 web 应用是一个简单的 ToDo 应用。 整个应用的架构非常简单,这将帮助我们理解如何使用 Node-RED 开发一个 web 应用,包括用户界面。

第十章处理树莓派上的传感器数据,教给我们使用 Node-RED 处理物联网数据的应用开发方法。 Node-RED 最初是用来处理物联网数据的。 因此,目前仍在使用 Node-RED 的许多用例是物联网数据处理。 Node-RED 将从传感器获取的数据传递给我们想要执行的每个进程并发布它。

第十一章通过在 IBM 云中创建一个服务器端应用可视化数据,教我们使用 Node-RED 在云平台端处理物联网数据的应用开发方法。 我们通常使用来自任何云平台上的边缘设备的数据进行分析、可视化等。 Node-RED 处理从 MQTT 代理订阅的数据,并根据任何目的对其进行可视化。

第十二章使用 Slack 和 IBM Watson 开发聊天机器人应用,教我们如何创建聊天机器人应用。 乍一看,Node-RED 和聊天机器人似乎没有关联,但许多聊天机器人应用在幕后使用 Node-RED。 原因是 Node-RED 可以像工作流一样在逐个数据的基础上执行服务器端处理。 在这里,我们创建了一个在 Slack 上运行的聊天机器人,Slack 在全世界都在使用。

第十三章在 Node- red 库上创建并发布自己的节点,教我们如何自己开发节点。 对于许多用例,我们可以从 node - red 库中找到处理所需的节点。 这是因为由于许多开发人员的贡献,许多节点都暴露在互联网上。 让我们通过开发我们自己的节点并将其发布到 node - red 库来帮助大量其他 node - red 用户。

为了最大限度地了解这本书

你需要 Node-RED 版本 1.2 或更高,Node.js 版本 12 或更高,npm 版本 6 或更高,最好是安装在你电脑上的最新的小版本。 但这是在本地环境中运行 Node-RED 时的情况。 对于在 IBM Cloud 上运行的情况(这是本书的教程之一),它取决于云平台的环境。 所有代码示例都在 macOS、Windows 和 Raspberry Pi OS 上进行了测试,但有些章节有基于 macOS 的命令行说明。

如果你正在使用这本书的数字版本,我们建议你自己输入代码或通过 GitHub 存储库访问代码(链接在下一节中)。 这样做将帮助您避免任何与复制和粘贴代码相关的潜在错误。

下载示例代码文件

你可以从 GitHub 网站https://github.com/PacktPublishing/-Practical-Node-RED-Programming下载这本书的示例代码文件。 如果代码有更新,它将在现有的 GitHub 存储库中更新。

我们还可以在https://github.com/PacktPublishing/中找到丰富的图书和视频目录中的其他代码包。 检查出来!

下载彩色图片

我们还提供了一个 PDF 文件,其中包含了本书中使用的屏幕截图/图表的彩色图像。 你可以在这里下载:https://static.packt-cdn.com/downloads/9781800201590_ColorImages.pdf

使用的约定

本书中使用了许多文本约定。

文本代码:

文本中的代码:表示文本中的代码词,数据库表名,文件夹名,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 用户名。


这是一个例子: "让我们使用 <h1>标签</h1> 将页面标题附加到正文."

代码块的设置如下:

//生成随机数

var min = 1 ;
var max = 10 ;
var a = Math.floor( Math.random() * (max + 1 - min) ) + min ;

// set random number to message
msg.payload = a;

// return message
return msg;

任何命令行输入或输出都以以下方式编写:

$ node --version
v12.18.1
$ npm version
6.14.5

粗体:

表示新术语、重要词汇或屏幕上显示的文字。例如菜单或对话框中的文字在文本中会以这种形式呈现。示例如下:“选择姓名和付款方案后,点击选择地区按钮。”

提示或重要注意事项 显示为以下形式

alt text

联系

我们欢迎读者的反馈。

一般反馈:如果您对本书的任何方面有疑问,请在邮件主题中提及书名,并发送电子邮件至customercare@packtpub.com

Errata:尽管我们已尽一切努力确保内容的准确性,但错误还是会发生。 如果您在本书中发现了错误,请向我们报告,我们将不胜感激。 请访问www.packtpub.com/support/errata,选择您的图书,点击勘误表提交链接,并输入详细信息。

:如果您在互联网上发现任何形式的我们的作品的非法拷贝,如果您能提供我们的地址或网站名称,我们将不胜感激。 请通过copyright@packt.com与我们联系,并附上资料链接。

如果你有兴趣成为一名作者:如果你有一个你擅长的话题,并且你有兴趣写作或写一本书,请访问authors.packtpub.com

评论

请留下评论。 一旦你阅读和使用这本书,为什么不在你购买它的网站上留下评论? 潜在的读者可以看到并使用您的公正意见来做出购买决定,我们在 Packt 可以理解您对我们的产品的看法,我们的作者可以看到您对他们的书的反馈。 谢谢你!

更多关于 packt.com 的信息,请访问packt.com