Jak z noda funkcji wysłać tablicę wartości na kilka Out?

Próbuję uzyskać coś w tym stylu

var msg1 = { payload:"output 1" };
var msg2 = { payload:"output 2" };
var msg3 = { payload:"output 3" };
var msg4 = { payload:"output 4" };
return [msg1, msg2, msg3 , msg4 ];

Z tą różnicą, że mój payload to liczba, którą wstrzykuję do funkcji z input_number


Przy zapisie jak na foto i tylko jednym Out , nie ma problemu
3
Natomaist, przy różnych próbach z kilkoma wiadomościami, zawsze dostaję błąd , jak na foto

Proszę nie sugerować się “Setupem” z tej fotki, bo zrobiłem to poglądowo, żeby było wiadomo co chcę uzyskać.
Czy i jak to można zrobić ?

var value1 = Number(msg.payload) + 1;
var value2 = Number(msg.payload) + 2;
var value3 = Number(msg.payload) + 3;
var value4 = Number(msg.payload) + 4;

var msg1 = { payload: value1 };
var msg2 = { payload: value2 };
var msg3 = { payload: value3 };
var msg4 = { payload: value4 };

return [msg1, msg2, msg3, msg4];


1 polubienie

Bardzo Dziękuję, a mogę zapytać gdzie znajdę jakieś info na ten temat ? Szukałem, ale albo źle, albo w złych miejscach.

Konwersja wartości na liczbę

1 polubienie

Cześć,
Nie ‘konwersja’ jest tutaj problemem. W przykładzie kolegi @isom1266 funkcja zwraca błąd Function tried to send a message of number czyli tam żadna konwersje nie jest potrzebna. Zwyczajnie funkcja może zwracać tylko obiekty, nie stringi czy liczby.

Za dokumntacją:
The function must always return a msg object. Returning a number or string will result in an error.

Dlatego liczba zwrócona w postaci { payload: value1 } ‘przechodzi’.
W przykładzie z błędami mem1 jest obiektem (msg.payload), a problemy zaczynają się przy mem 2, które już jest tylko liczbą.

Przydatne:
https://nodered.org/docs/user-guide/writing-functions

4 polubienia