# About edit function node before MQTT OUT

**URL:** <https://discourse.nodered.org/t/about-edit-function-node-before-mqtt-out/18419>\
**Category:** General\
**Created:** [25 November 2019 23:52 UTC](https://discourse.nodered.org/t/about-edit-function-node-before-mqtt-out/18419 "2019-11-25T23:52:47Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![molly](https://avatars.discourse-cdn.com/v4/letter/m/df788c/32.png) [@molly](https://discourse.nodered.org/u/molly)\
**Post date:** [25 November 2019 23:52 UTC](https://discourse.nodered.org/t/about-edit-function-node-before-mqtt-out/18419/1 "2019-11-25T23:52:47Z")

</div>

Hi,  
I have a question about selecting one payload\_fields signal in function node, so the MQTT OUT node can only output one signal such as humidity. But in fact, in my TTN console, the downlink massage is always 00000000000, I am confused maybe the first line of the code is wrong, here is my code:

$: payload = msg.payload.payload\_fields.humidity;  
return {  
topic: 'molly-pycom-device/devices/orangefipy/down',  
payload: {  
port: 2,  
confirmed: false,  
payload\_raw: new Buffer(payload).toString('base64'),  
schedule: 'replace'  
}  
};

 ![1](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/b/be83a12706a63dd18a47ab460ad3c7dddfd49e58.jpeg) ![2](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/c/c4cae5efdc89d0b920e4de0cbbd447f74afe6bd9.jpeg)  
Wishing someone can solve my problem. Thanks very much!

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [26 November 2019 00:47 UTC](https://discourse.nodered.org/t/about-edit-function-node-before-mqtt-out/18419/2 "2019-11-26T00:47:07Z")

</div>

Hi @molly

The issue is this line:

```auto
payload_raw: new Buffer(payload).toString('base64'),

```

At this point `payload` contains the number `39.4597...`. When you pass that to the Buffer constructor, it thinks you want a buffer object of size 39.4597. If you want a create a string representation of that number you could do:

```auto
payload_raw: ""+payload

```

If base64 encoding is a particular requirement you have, then you can do:

```auto
payload_raw: Buffer.from(""+payload).toString('base64'),

```

---

<div class="post-metadata">

**Author:** ![molly](https://avatars.discourse-cdn.com/v4/letter/m/df788c/32.png) [@molly](https://discourse.nodered.org/u/molly)\
**Post date:** [26 November 2019 01:34 UTC](https://discourse.nodered.org/t/about-edit-function-node-before-mqtt-out/18419/3 "2019-11-26T01:34:21Z")

</div>

It works! Thanks very much!!!😃
