This return from the modbus node is a a nodejs buffer - this is quite typical of many PLC type nodes.
A buffer is ideal for data where the endianness of the data may or may not be the same on the receiver (node-red in this case)
additionally, nodejs buffer has many built in functions that permit easy conversion from byte to int16 / uint16 / float / int32 etc (in both big endian and little endian)
If you are not much of a coder I wrote a contrib node that does most of the heavy lifting.
Example....
[{"id":"a1be6544.008218","type":"buffer-parser","z":"553814a2.1248ec","name":"","data":"payload","dataType":"msg","specification":"{\"options\":{\"resultType\":\"object\",\"singleResult\":true},\"items\":[{\"name\":\"MB30121\",\"type\":\"int16\",\"offset\":0,\"length\":1},{\"name\":\"MB30122\",\"type\":\"int16\",\"offset\":2,\"length\":1}]}","specificationType":"json","x":970,"y":240,"wires":[["3c8ca47e.9ffb7c"]]},{"id":"a59c2b8.5d451d8","type":"inject","z":"553814a2.1248ec","name":"Fake Modbus DATA [4,119,4,118]","topic":"","payload":"[4,119,4,118]","payloadType":"bin","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":910,"y":200,"wires":[["a1be6544.008218"]]},{"id":"3c8ca47e.9ffb7c","type":"debug","z":"553814a2.1248ec","name":"","active":true,"tosidebar":true,"console":false,"tostatus":true,"complete":"true","targetType":"full","x":990,"y":280,"wires":[]}]