красный узел очистить context.global - PullRequest
0 голосов
/ 02 октября 2019

Мы работаем над рефакторингом наших узловых потоков. Поэтому я пытался найти способ очистить наш контекст без необходимости каждый раз перезагружать узел красным. Дело в том, что мы не используем обычные global.get() и global.set() для доступа к глобальному контексту;мы используем переменную context.global, для которой я не могу найти никаких ссылок в документации.

Таким образом, чтобы установить новую глобальную переменную, мы идем context.global.var1 = "value" вместо global.set('var1','value');И чтобы получить значение, мы идем var thisvalue = context.global.var1 вместо var thisvalue = global.get('var1').

Также обратите внимание, что эти две переменные не хранятся в одном месте, context.global не отображается на вкладке данных контекста. И я не могу получить его значения с помощью метода global.get.

Так в чем же разница между этими двумя методами и как я могу очистить этот context.global, отметив, что я пробовал эти методы:

context.global= new Object();
context.global= {};
context.global={'empty','empty'};
context.global=null;

Дополнительная информация: мы используем версию v0.20.3 красного узла

Спасибо

1 Ответ

1 голос
/ 02 октября 2019

Использование context.global.var устарело (следовательно, поэтому оно было удалено из документа) в пользу global.set(), flow.set() или context.set(), потому что это позволяет использовать плагины хранилища, чтобы сделать контекст постоянным при перезапусках.

Плагины хранилища также позволяют вам использовать эти вещи для совместного использования контекста между несколькими экземплярами Node-RED.

Если вы хотите очистить значения в контексте, вам нужно установить их на undefined

Другой вариант - написать свой собственный плагин для хранения, который вы можете выбрать для очистки по своему усмотрению (в зависимости от того, что вы используете в качестве резервного хранилища)

...