ndoe-red 部署以及登录

mkdir /opt/node-red/node_red_data
docker run -it -p 1880:1880 -v /opt/node-red/node_red_data:/data --name mynodered nodered/node-red
touch 
node-red-admin hash-pw
vi settings.js
替换密码
chmod 777 node_red_data
### 调用 Node-RED API 触发特定流程(Flow)的方法 Node-RED 提供了丰富的 HTTP API 接口,允许外部系统通过 RESTful 方式与流程(Flow)进行交互。要触发特定流程 ID 的流程,可以通过以下几种方式进行操作。 #### 1. 通过 `/flows` 接口获取并操作流程 可以通过向 `/flows` 接口发送 GET 请求来获取当前部署的所有流程信息。每个流程都有一个唯一的 `id` 字段,可以用于标识特定流程。获取到流程信息后,可以构造新的流程定义并重新部署[^2]。 示例代码如下: ```javascript import axios from 'axios'; async function getFlows() { try { const response = await axios.get('http://localhost:1880/flows'); const flows = response.data; console.log('Current flows:', flows); } catch (error) { console.error('Error fetching flows:', error); } } ``` #### 2. 通过 `/flows/{flowId}` 接口更新或触发特定流程 Node-RED 的 `/flows/{flowId}` 接口允许通过 PUT 请求更新特定流程的定义。通过构造新的流程定义并发送到该接口,可以实现对特定流程的更新或触发执行。 示例代码如下: ```javascript const updatedFlow = [ { "id": "flow-1", "type": "tab", "label": "Updated Flow", "disabled": false, "info": "This flow has been updated." } ]; async function updateFlow(flowId) { try { const response = await axios.put(`http://localhost:1880/flows/${flowId}`, updatedFlow, { headers: { 'Content-Type': 'application/json' } }); console.log('Flow updated:', response.data); } catch (error) { console.error('Error updating flow:', error); } } ``` #### 3. 通过自定义 HTTP 节点触发流程执行 在 Node-RED 中,可以通过 HTTP 节点创建自定义路由,例如 `/trigger`,然后通过外部请求触发流程执行。该方法适用于需要通过外部系统调用特定流程的场景。 示例代码如下: ```javascript async function triggerWorkflow() { try { const response = await axios.post('http://localhost:1880/trigger', { payload: 'Triggering flow execution' }); console.log('Workflow triggered:', response.data); } catch (error) { console.error('Error triggering workflow:', error); } } ``` #### 4. 通过 `/inject` 接口模拟触发函数节点 Node-RED 提供了 `/inject` 接口,可以通过 POST 请求模拟向指定函数节点注入消息,从而触发流程执行。该方法适用于需要通过外部请求触发特定节点逻辑的场景。 示例代码如下: ```javascript async function injectMessage(nodeId) { try { const response = await axios.post(`http://localhost:1880/inject/${nodeId}`, { payload: 'Injecting message' }); console.log('Message injected:', response.data); } catch (error) { console.error('Error injecting message:', error); } } ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值