2017-01-26 6 views
0

Я пытаюсь построить функцию узла, который принимает этот вход от узла переключателя:Добавление новых элементов в массив внутри функции (Node-красный)

тему: «Имя Alarm» полезной нагрузки: 1

Я пытаюсь создать массив внутри функционального узла, который толкает входы темы в массив. Это код, у меня в функции узла до сих пор:

context.outputAlarms = []; 
context.outputAlarms.push(msg.topic); 
msg.payload = context.outputAlarms; 
return msg; 

И это отладочный вывод узел: C-1A SEL для RECV SYS AUTO STP: сбщ: Object { "полезная нагрузка": [ " C-1A SEL FOR RECV SYS AUTO STP "],« topic »:« C-1A SEL FOR RECV SYS AUTO STP »,« _msgid »:« bbe3efc0.3816a »}

Я использую« контекст », потому что из того, что я понимаю, это модуль, который хранит данные в определенном узле. Я считаю, что моя проблема в том, что массив не добавляет новые элементы, он перезаписывает их. Может кто-то указать мне верное направление?

ответ

1

Ваша первая строка переписывает массив с пустым массивом при каждом запуске функции. Вам нужно проверить, существует ли он, и только установить его на пустой, если нет.

Что-то, как это должно работать:

if (!context.outputAlarms) { 
    context.outputAlarms = []; 
} 
context.outputAlarms.push(msg.topic); 
msg.payload = context.outputAlarms; 
return msg; 

Также, пожалуйста, прочитайте документ об использовании контекста, пример вы используете старый устаревший метод доступа к нему. Документы: here