# Function Node with multi-output

**URL:** https://discourse.nodered.org/t/function-node-with-multi-output/28031
**Category:** General
**Created:** [9 June 2020 06:26 UTC](https://discourse.nodered.org/t/function-node-with-multi-output/28031 "2020-06-09T06:26:03Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![jinyistudio](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jinyistudio/32/23670_2.png) [@jinyistudio](https://discourse.nodered.org/u/jinyistudio)
#### Post date: [9 June 2020 06:26 UTC](https://discourse.nodered.org/t/function-node-with-multi-output/28031/1 "2020-06-09T06:26:04Z")

</div>

My Function node have 8 output. beacuse my msg.payload is a array. following code, Why always return value(it is a array[8]) to output1 😂

```auto
var outputMsgs = [];
var words = msg.payload;
for (var w in words) {
    outputMsgs.push({payload:words[w]});
}
return [outputMsgs];

```

---

<div class="post-metadata">

### Author: ![cinhcet](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/cinhcet/32/438_2.png) [@cinhcet](https://discourse.nodered.org/u/cinhcet)
#### Post date: [9 June 2020 06:32 UTC](https://discourse.nodered.org/t/function-node-with-multi-output/28031/2 "2020-06-09T06:32:51Z")

</div>

not sure if I understand you correctly, but try  
`return outputMsgs;`, since it is already an array

---

<div class="post-metadata">

### Author: ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)
#### Post date: [9 June 2020 06:35 UTC](https://discourse.nodered.org/t/function-node-with-multi-output/28031/3 "2020-06-09T06:35:37Z")

</div>

Hi, in order to make code more readable and importable it is important to post it between two sets of three backticks - ``` - see this post for more details - [How to share code or flow json](https://discourse.nodered.org/t/how-to-share-code-or-flow-json/506)

Your code is currently unreadable - please edit your post.

Secondly,

Read this [the documentation on functions](https://nodered.org/docs/user-guide/writing-functions#multiple-messages) it tels you about sending multiple messages

Basically, its doing what you asked. (if you want 1 mesage for each output, remove the outer array e.g.

```auto
//return [outputMsgs]; << for sending multiple as per docs
return outputMsgs ; // << for sending 1 per output

```

---

<div class="post-metadata">

### Author: ![jinyistudio](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/jinyistudio/32/23670_2.png) [@jinyistudio](https://discourse.nodered.org/u/jinyistudio)
#### Post date: [9 June 2020 06:41 UTC](https://discourse.nodered.org/t/function-node-with-multi-output/28031/4 "2020-06-09T06:41:27Z")

</div>

thank,following code, it work ok.

```auto
var outputMsgs = [];
var words = msg.payload;
for (var w in words) {
    outputMsgs.push({payload:words[w]});
}
return outputMsgs;

```

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)
#### Post date: [23 June 2020 06:47 UTC](https://discourse.nodered.org/t/function-node-with-multi-output/28031/5 "2020-06-23T06:47:11Z")

</div>

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.
