如何使用Node-RED

发布时间:2021-10-13 10:34:46 作者:iii
来源:亿速云 阅读:424
# 如何使用Node-RED

## 什么是Node-RED?

Node-RED是一个基于浏览器的可视化编程工具,由IBM开发并于2013年开源。它允许开发者通过拖放节点(Node)并连接它们来创建自动化流程(Flows),特别适合物联网(IoT)应用、API连接和自动化任务。

---

## 安装Node-RED

### 1. 通过npm安装(推荐)
```bash
npm install -g --unsafe-perm node-red

安装完成后运行:

node-red

默认访问地址:http://localhost:1880

2. Docker方式

docker run -it -p 1880:1880 --name mynodered nodered/node-red

3. 系统级安装


核心概念

节点(Nodes)

Node-RED的基本构建块,分为三类: 1. 输入节点(如injecthttp in) 2. 处理节点(如functionswitch) 3. 输出节点(如debughttp out

流(Flows)

由多个节点连接组成的工作流程,支持多标签页管理。

消息(Message)

JSON格式的数据包,在节点间传递。示例:

{
  "payload": "Hello World",
  "topic": "greeting"
}

基础操作指南

1. 创建第一个流

  1. 从左侧面板拖拽inject节点到工作区
  2. 添加debug节点
  3. 连接两个节点
  4. 点击右上角部署按钮
  5. 点击inject节点的左侧按钮,在调试窗口查看输出

2. 使用Function节点

// 示例:将输入转为大写
msg.payload = msg.payload.toString().toUpperCase();
return msg;

3. 调试技巧


进阶功能

1. 子流(Subflows)

将重复使用的节点组封装为可复用的子流: 1. 选中多个节点 → 右键 → 创建子流 2. 通过subflow节点重复调用

2. 环境变量

settings.js中配置:

module.exports = {
  envVar: process.env.MY_VAR || 'default'
}

3. 外部模块管理

通过节点管理菜单: - 安装社区节点(如node-red-dashboard) - 更新/删除现有节点


实际应用案例

案例1:物联网数据采集

graph LR
  A[MQTT订阅] --> B(JSON解析)
  B --> C[数据过滤]
  C --> D[MySQL存储]

案例2:REST API代理

  1. 使用http in接收请求
  2. 通过function节点处理逻辑
  3. http request调用外部API
  4. 通过http out返回响应

案例3:定时任务

graph LR
  A[定时触发器] --> B[爬取网页]
  B --> C[发送邮件]

最佳实践

  1. 版本控制:将流程导出为JSON并纳入Git管理
  2. 错误处理:为关键节点添加catch节点
  3. 性能优化
    • 避免在Function节点中使用同步IO
    • 对高频消息使用批处理
  4. 安全建议
    • 修改默认端口(通过settings.js
    • 启用HTTPS
    • 使用node-red-admin设置密码

常见问题解答

Q1: 如何备份流程?

通过菜单栏导出当前流,或直接复制flows.json文件。

Q2: 节点执行顺序如何确定?

按连接顺序执行,并行连接时顺序不确定,需用delay节点控制。

Q3: 能否连接硬件设备?

可以,通过安装对应节点(如node-red-contrib-gpio控制树莓派GPIO)。


学习资源推荐

  1. 官方文档
  2. Node-RED Cookbook
  3. YouTube教程频道:FlowForge

提示:Node-RED 1.0+版本要求Node.js 12+,建议使用LTS版本以获得最佳稳定性。 “`

(全文约1050字)

推荐阅读:
  1. SpringBoot使用NoSQL——Redis的使用
  2. 使用dwz框架配合MVC使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

node-red

上一篇:为什么要学习Java并发

下一篇:什么是volatile

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》