2016-11-24 7 views
1

Я использую node-red, и мне было бы интересно сделать постоянную переменную (на самом деле массив), которая не удаляется каждый раз, когда данные достигают узла. Я прочитал около context вариант, но я не могу заставить его работать.Лучший способ сохранить/инициализировать постоянную переменную в блоке Node-Red?

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

Как я могу это сделать? И что/где - лучший способ инициализировать эту переменную?

Спасибо заранее,

С наилучшими пожеланиями

ответ

2

Функциональность контекста именно то, что вы хотите.

Существует множество способов работы с свойствами контекста. Вы можете получить/установить их с помощью узла Change или сделать это с помощью узла Function.

Например:

var myArray = flow.get('myArray'); 
if (!myArray) { 
    myArray = []; 
} 

// do something with myArray 

// save it back to context 
flow.set('myArray',myArray); 

документация имеет еще некоторые детали: http://nodered.org/docs/writing-functions#storing-data

+0

, что в вашем коде 'flow.'? – ndarkness

+0

Это действительно работает, поток относится к моему текущему потоку, благодаря @knolleary – ndarkness