前言
在 Node-Red 中,一般采用 JSON 格式来编写流程,当流程比较复杂时,JSON 文件变得十分庞大,可读性也很差。为了提高 Node-Red 流程的可读性和可维护性,我们可以使用 node-red-contrib-separate-flow-json
这个 npm 包来对 JSON 文件进行拆分、引用。
安装
可以通过以下命令安装 node-red-contrib-separate-flow-json
:
npm install node-red-contrib-separate-flow-json
使用
配置 JSON 文件
在 Node-Red 中,我们可以使用 File
节点来读取 JSON 文件,如下图所示:
在 JSON 文件中,我们可以使用 $ref
关键字来引用其他 JSON 文件,如下所示:
{ "$ref": "path/to/another/flow.json#path/to/node" }
其中,path/to/another/flow.json
是被引用的 JSON 文件路径,path/to/node
是被引用节点的路径。
引入 npm 包
在 Node-Red 中,我们可以通过 Settings
→ Palette
→ Install
→ node-red-contrib-separate-flow-json
安装 node-red-contrib-separate-flow-json
:
修改 Node-Red 配置文件
找到 Node-Red 的配置文件 settings.js
,添加以下内容:
module.exports = { ...... functionGlobalContext: { separateflowjson: require('node-red-contrib-separate-flow-json') }, ...... }
使用 npm 包
在流程中添加 separate-flow-json
节点,如下图所示:
在节点的配置中,可以指定 JSON 文件路径和需要引用的节点路径,如下所示:
示例
以下是一个拥有多个 JSON 文件引用的示例:
flow.json
-- -------------------- ---- ------- - ---------- ----------------------------------------------- ------- --------- ------------- - ------ - ------- -------- -- ------- - ------- -------- -- ----------- - ------- -------- -- ----------- - ------- -------- - -- ----------- -------- -------- - ---------------------- - ------- -------- -------- - ------- --------- --------- ------- - - -- ------------- - ----- - ------- ---------- --------- ---------------- ---------- ------ ---------- ----- -- ------- - ------- --------- --------- ---------------- -- ----------- - ------- --------- --------- --------------- -- -------- - ------- --------- --------- -------- --------- ---------------- -- -------- - ------- --------- --------- ------------------- -- ------------ - ------- -------- -------- - ------- --------- ------------- - ------- - ------- --------- ------- ----------- ------------ ---------- ---------- --------- - ------ -------------------------------------- ------------- - -- ---------- - ------- ----------------- ----------- ---------- -------- ---- ------ ----- ---- -- -- ------------- - - - - -- ----------------------- ----- -
address.json
-- -------------------- ---- ------- - ------- --------- ------------- - --------- - ------- --------- --------- -------------------- -- --------- - ------- --------- --------- ----------------------- - - -
index.js
-- -------------------- ---- ------- ----- ----- - ----------------- -------------- - ------------- - -------- ------------------------- - ---------------------------------- --- ---- - ----- ---------------- ------------- ----- ----- - --- ---- - --- --- - ----- ------------------- - --------------------------------- ----- ------ - ----------------------- ---- - --------------------------- ------- - ----- ----- - ------ ---------- - ----------- - ----- --------------- ------- --- - --------------------------------------------- ------------------- -
在 Node-Red 中,可以使用 fake-data-generator
节点生成虚假数据。
结论
node-red-contrib-separate-flow-json
这个 npm 包可以有效地提高 Node-Red 流程的可读性和可维护性,尤其在流程比较复杂且需要对多个 JSON 文件进行引用时,更是有着不可替代的作用。希望本文对你有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600572c481e8991b448e8dcf