Node-RED:Рецепты/Как запустить поток, если нода выдала ошибку: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) |
Нет описания правки |
||
(не показаны 2 промежуточные версии 1 участника) | |||
Строка 1: | Строка 1: | ||
{{Node-RED/Панель перехода}} | {{Node-RED/Панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=Как запустить поток, если нода выдала ошибку<ref>[https://cookbook.nodered.org/basic/trigger-on-error cookbook.nodered.org - Trigger a flow when a node throws an error]</ref>= | =Как запустить поток, если нода выдала ошибку<ref>[https://cookbook.nodered.org/basic/trigger-on-error cookbook.nodered.org - Trigger a flow when a node throws an error]</ref>= | ||
Строка 20: | Строка 17: | ||
[[File:nodered_recipe_trigger-on-error.png|center]] | [[File:nodered_recipe_trigger-on-error.png|center]] | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
[{"id":"2bd6810d.e22ece","type":"catch","z":"fc046f99.4be08","name":"","scope":["2c94a22c.91012e"],"uncaught":false,"x":130,"y":160,"wires":[["d16b9fac.8212a"]]},{"id":"2c94a22c.91012e","type":"function","z":"fc046f99.4be08","name":"Throw Error","func":"node.error(\"an example error\", msg); ","outputs":1,"noerr":0,"x":310,"y":100,"wires":[[]]},{"id":"d16b9fac.8212a","type":"debug","z":"fc046f99.4be08","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"error","targetType":"msg","x":300,"y":160,"wires":[]},{"id":"c5ee9670.5dbbd8","type":"inject","z":"fc046f99.4be08","name":"Trigger error","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":100,"wires":[["2c94a22c.91012e"]]}] | [{"id":"2bd6810d.e22ece","type":"catch","z":"fc046f99.4be08","name":"","scope":["2c94a22c.91012e"],"uncaught":false,"x":130,"y":160,"wires":[["d16b9fac.8212a"]]},{"id":"2c94a22c.91012e","type":"function","z":"fc046f99.4be08","name":"Throw Error","func":"node.error(\"an example error\", msg); ","outputs":1,"noerr":0,"x":310,"y":100,"wires":[[]]},{"id":"d16b9fac.8212a","type":"debug","z":"fc046f99.4be08","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"error","targetType":"msg","x":300,"y":160,"wires":[]},{"id":"c5ee9670.5dbbd8","type":"inject","z":"fc046f99.4be08","name":"Trigger error","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":100,"wires":[["2c94a22c.91012e"]]}] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 33: | Строка 30: | ||
=См.также= | =См.также= | ||
{{ads}} | |||
=Внешние ссылки= | =Внешние ссылки= | ||
Строка 39: | Строка 36: | ||
[[Категория:Рецепты Node-RED]] | [[Категория:Рецепты Node-RED]] | ||
[[Категория:Рецепты]] | [[Категория:Рецепты]] | ||
{{Навигационная таблица/Node-RED библиотеки}} | |||
{{Навигационная таблица/Телепорт}} |
Текущая версия от 18:25, 14 мая 2023
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Как запустить поток, если нода выдала ошибку[1]
Проблема
Вам нужно запустить поток, если нода выдала ошибку.
Решение
Воспользуйтесь нодой «Catch», чтобы принять сообщение об ошибке и запустить поток.
Пример
[{"id":"2bd6810d.e22ece","type":"catch","z":"fc046f99.4be08","name":"","scope":["2c94a22c.91012e"],"uncaught":false,"x":130,"y":160,"wires":[["d16b9fac.8212a"]]},{"id":"2c94a22c.91012e","type":"function","z":"fc046f99.4be08","name":"Throw Error","func":"node.error(\"an example error\", msg); ","outputs":1,"noerr":0,"x":310,"y":100,"wires":[[]]},{"id":"d16b9fac.8212a","type":"debug","z":"fc046f99.4be08","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"error","targetType":"msg","x":300,"y":160,"wires":[]},{"id":"c5ee9670.5dbbd8","type":"inject","z":"fc046f99.4be08","name":"Trigger error","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":100,"wires":[["2c94a22c.91012e"]]}]
Разбор
Ноду «Catch» можно настроить на ловлю ошибок от заданных нод, входящих в поток, или от любых других нод. Это позволяет вам создать разные потоки обработки ошибок для разных нод.
Нода «Catch» отправляет сообщение, которое было записано вместе с ошибкой. Она также задает в свойстве «msg.error» подробную информацию об ошибке и то, какая нода ее выдала.
Имейте в виду, что ноды должны корректно регистрировать свои ошибки – чтобы нода «Catch» была в состоянии их выловить.
См.также
Внешние ссылки