# Duplicated the payload twice at once

**URL:** https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661
**Category:** General
**Created:** [28 April 2020 06:15 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661 "2020-04-28T06:15:36Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![Ahd](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@Ahd](https://discourse.nodered.org/u/Ahd)
#### Post date: [28 April 2020 06:15 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/1 "2020-04-28T06:15:36Z")

</div>

Hi  
I am stuck with the flow that shown below, its read from DB and then does checking process by using If statement, then displays the output. The problem is that it's duplicated the message payload each time injected node that will cause me a duplicate when will insert the results to DB again... Please I want to know why that happened.

The flow is 🙂

 ![fff](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/a/2/a26eb1279ef26102aa15001836a67d47aa67f614.png)

The code in the second function (checking ) is 🙂

```auto

var i;
var in_mac;
let person;
let newmsg;

msg.payload.forEach(item => {
    
    if (item.in_mac === "f123"){
        person = "tom";
        
    } else if (item.in_mac === "abc"){
        person = "james";
    }
   newmsg = {employee: person, Date:new Date().toLocaleDateString(), Time: new Date().toLocaleTimeString()};

    node.send({payload: newmsg});
});
node.done();
return;

```

The results is  
 ![res](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/6/1/6110680ed9560c988804fec15e19586cb46c1a56.png)

---

<div class="post-metadata">

### Author: ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)
#### Post date: [28 April 2020 07:10 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/2 "2020-04-28T07:10:12Z")

</div>

> [@Ahd](#):
>
> The flow is

a picture.

What are you injecting and what is returned from the database node.

---

<div class="post-metadata">

### Author: ![Ahd](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@Ahd](https://discourse.nodered.org/u/Ahd)
#### Post date: [28 April 2020 07:15 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/3 "2020-04-28T07:15:05Z")

</div>

Here is it

```auto
[{"id":"f9eb90b8.8007a","type":"tab","label":"Flow 3","disabled":false,"info":""},{"id":"fd47fc9b.c64a2","type":"inject","z":"f9eb90b8.8007a","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":626.0142211914062,"y":196.00567626953125,"wires":[["f732f3e7.46086"]]},{"id":"f732f3e7.46086","type":"function","z":"f9eb90b8.8007a","name":"Read","func":"msg.topic =\"SELECT * from Check_IN\"\nreturn msg;","outputs":1,"noerr":0,"x":758.0000152587891,"y":193,"wires":[["226f5e51.1238f2"]]},{"id":"226f5e51.1238f2","type":"mysql","z":"f9eb90b8.8007a","mydb":"f9b17512.31f4e8","name":"","x":878.0000152587891,"y":193,"wires":[["55eee102.105d4"]]},{"id":"55eee102.105d4","type":"function","z":"f9eb90b8.8007a","name":"Checking","func":"\nvar i;\nvar in_mac;\nlet person;\nlet newmsg;\n\nmsg.payload.forEach(item => {\n \n if (item.in_mac === \"f123\"){\n person = \"tom\";\n \n } else if (item.in_mac === \"abc\"){\n person = \"james\";\n }\n newmsg = {employee: person, Date:new Date().toLocaleDateString(), Time: new Date().toLocaleTimeString()};\n\n node.send({payload: newmsg});\n});\nnode.done();\nreturn;","outputs":1,"noerr":0,"x":1008.0000152587891,"y":193,"wires":[["a54b8ba5.eed2b8"]]},{"id":"a54b8ba5.eed2b8","type":"debug","z":"f9eb90b8.8007a","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","x":1178.000015258789,"y":193,"wires":[]},{"id":"f9b17512.31f4e8","type":"MySQLdatabase","z":"","name":"db","host":"194.81.104.22","port":"3306","db":"db15400686","tz":""}]

```

---

<div class="post-metadata">

### Author: ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)
#### Post date: [28 April 2020 07:21 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/4 "2020-04-28T07:21:42Z")

</div>

So your problem is that you are doing 2 if's, but what if both if's don't match ? the previous values will remain and thus you see duplicates.

Why don't you just query the database for the mac directly ?

---

<div class="post-metadata">

### Author: ![Ahd](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@Ahd](https://discourse.nodered.org/u/Ahd)
#### Post date: [28 April 2020 07:33 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/5 "2020-04-28T07:33:42Z")

</div>

The mac that we read it from db is collected during the online phase while the mac that in the function node collected in offline in order to make a comparison.....

---

<div class="post-metadata">

### Author: ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)
#### Post date: [28 April 2020 07:37 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/6 "2020-04-28T07:37:29Z")

</div>

I don't understand.

But you do not have a table with names and macs that you can validate against ?

---

<div class="post-metadata">

### Author: ![Ahd](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@Ahd](https://discourse.nodered.org/u/Ahd)
#### Post date: [28 April 2020 07:41 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/7 "2020-04-28T07:41:01Z")

</div>

I have a table stores the mac address and in the function node the name will add after checking ....

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [28 April 2020 09:08 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/8 "2020-04-28T09:08:44Z")

</div>

Put a `debug` node (set to display the 'Complete msg object') on the output of the `mysql` node. Then you will see what is going into the function node - i.e. how many rows are returned...

---

<div class="post-metadata">

### Author: ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)
#### Post date: [28 April 2020 09:38 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/9 "2020-04-28T09:38:24Z")

</div>

> [@bakman2](#):
>
> your problem is that you are doing 2 if's, but what if both if's don't match ? the previous values will remain and thus you see duplicates.

That is the issue.

---

<div class="post-metadata">

### Author: ![Ahd](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@Ahd](https://discourse.nodered.org/u/Ahd)
#### Post date: [28 April 2020 12:08 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/10 "2020-04-28T12:08:57Z")

</div>

@bakman2

Thank, I understand it now

---

<div class="post-metadata">

### Author: ![Ahd](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@Ahd](https://discourse.nodered.org/u/Ahd)
#### Post date: [28 April 2020 12:09 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/11 "2020-04-28T12:09:46Z")

</div>

thanks , I did it and I figured out my mistake

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [28 April 2020 12:48 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/12 "2020-04-28T12:48:10Z")

</div>

It would be helpful for others reading this in the future to explain what the mistake was so they could hopefully gain from your experience.

---

<div class="post-metadata">

### Author: ![Ahd](https://avatars.discourse-cdn.com/v4/letter/a/e9a140/32.png) [@Ahd](https://discourse.nodered.org/u/Ahd)
#### Post date: [28 April 2020 13:00 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/13 "2020-04-28T13:00:16Z")

</div>

The problem was as @bakman2 said.

> [@bakman2](#):
>
> your problem is that you are doing 2 if's, but what if both if's don't match ? the previous values will remain and thus you see duplicates.

---

<div class="post-metadata">

### Author: ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)
#### Post date: [28 April 2020 13:09 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/14 "2020-04-28T13:09:56Z")

</div>

but you haven't shown how you fixed the function node....

---

<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: [27 June 2020 13:09 UTC](https://discourse.nodered.org/t/duplicated-the-payload-twice-at-once/25661/15 "2020-06-27T13:09:58Z")

</div>

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