Node-RED处理没有抛出标准异常的节点的错误

问题描述 投票:0回答:1

我想使用Pushover节点发送通知。我已经通过curl使用了一段时间了,很少发送一些消息。那就是为什么我有bash的原因

echo "$curlOutput" | grep -qP '{"status":1' 
if [ ! $? -eq 0 ] 
then
    echo "$2" | mail --append "Content-Type: text/plain; charset=UTF-8" -s "$1" [email protected]
fi

捕获错误,然后通过电子邮件发送消息。

现在,我想在Node-Red中做类似的事情。出于测试目的,如果通过sudo iptables -A OUTPUT -d 104.20.0.0/16 -m comment --comment "Pushovertest" -j REJECT模拟网络错误

成功屏蔽。在node-red-log中,我看到

[5月18日13:46:24-[错误] [推送:252a17dc.1239d8]错误:连接ECONNREFUSED 104.20.125.71:443

现在查看此Node-RED流

“节点红色流程”“>

错误显示在调试窗口中,并且来自下推节点。 catch节点不能满足期望,显然是因为pushover不使用异常框架https://developer.ibm.com/recipes/tutorials/nodered-exception-handling-framework/

首先通过测试:记录了错误。但是在这种情况下,我如何对Node-RED中的此错误做出反应以执行其他操作?

我想使用Pushover节点发送通知。我已经通过curl使用了一段时间了,很少发送一些消息。那就是为什么我在bash中回显“ $ curlOutput” | grep -qP'{“ ...

error-handling node-red pushover
1个回答
0
投票

我会从源代码中猜测错误是来自第103行的57-pushover.js文件的名称。

此行上对node.error()的调用未推送传入的msg对象,因此不会将其传递到catch节点。 node.error()函数有2个签名,第一个仅接收错误消息,第二个接收错误消息和传入的msg对象,仅第二个转发错误,并将msg对象传递给catch节点。

© www.soinside.com 2019 - 2024. All rights reserved.