Node-RED: 在文件系统上存储数据

本文档属于入门指南指南的一部分。您可以在此处查看完整指南:如何开始使用 Node-RED

欢迎查阅 Stackhero 文档

Stackhero 提供全托管的 Node-RED cloud 环境,助您快速构建工作流:

  • 内置 MQTT 服务器(Mosquitto),实现无缝 IoT 集成。
  • 完全访问 Node-RED 管理界面,便于管理流程和设置。
  • 包含 Node-RED Dashboard,支持实时可视化。
  • 提供 专用 SMTP 邮件服务器,发送邮件无数量限制。
  • 轻松实现 一键更新,让您的实例始终保持最新。
  • 支持 自定义域名,自动配置 HTTPS,例如 https://node-red.your-company.com
  • 性能 与强大 安全性,基于专属私有基础设施。

您只需约 5 分钟,即可拥有安全、可用于生产环境的 Node-RED cloud hosting 实例。Stackhero 负责部署、更新和基础设施运维,让您专注于自动化流程的开发。

Stackhero for Node-RED 提供本地存储,您的节点可以在其中存储文件。此存储位于 /persistent/storage/ 目录中。

警告 切勿将本地存储的目标设置为 /persistent/storage/ 的子目录以外的其他位置。 如果您使用其他目录,当您应用 Node-RED 更新时,您的数据将丢失!

在此示例中,我们将使用 node-red-node-sqlite 节点。此节点需要一个目录来存储其数据。

您需要在 /persistent/storage/ 目录中定义一个文件,例如 /persistent/storage/myDatabase.sqlite

Node-RED 上的 SQLite 配置示例Node-RED 上的 SQLite 配置示例

如果您需要本地存储数据,可以将文件写入 /persistent/storage/ 目录。某些 Node-RED 数据可能已经存在于此目录中。为避免冲突,建议使用子目录,例如 /persistent/storage/myFlowData,来存储您的文件。

要使用 Node.js 创建此目录,请在您的节点中运行以下代码:

fs.mkdirSync('/persistent/storage/myFlowData', { recursive: true });

注意 如果您计划存储多个文件,我们建议使用对象存储服务器。对象存储服务器使通过 API 管理、共享和访问文件变得更容易,例如使用 S3 协议。考虑使用 Stackhero 上的 MinIO 服务,它可以在短短 2 分钟内为您提供一个兼容 S3 的对象存储服务器。