Clone
2
Manual NodeRED Runtime Node Js
znetsixe edited this page 2026-05-11 22:24:29 +02:00

Node-RED Runtime Node JS Manual (EVOLV Summary)

code-ref type

Note

Reference page. Maintained for context; not regenerated by code. See Home for current top-level navigation.

Based on: https://nodered.org/docs/creating-nodes/node-js

Input Handler Contract

  • Node-RED calls runtime handlers as function(msg, send, done).
  • For compatibility, custom nodes should support fallback behavior when send is not provided.
  • Use done() on successful completion and done(err) on failure.

Output Routing Rules

  • For single-output nodes: send(msg) sends on output 1.
  • For multi-output nodes: pass an array with one slot per output, for example:
    • [msg, null, null] => output 1 only
    • [null, msg, null] => output 2 only
  • Always construct the outbound message first, then send it.

EVOLV Runtime Pattern

Recommended runtime input structure for src/nodeClass.js:

  1. Normalize send fallback.
  2. Wrap switch(msg.topic) in try/catch.
  3. Route response messages to explicit output index with array format.
  4. Call done()/done(err) consistently.

Common Failure Mode

  • Sending a bare object in a multi-output context can hide intended port routing.
  • In EVOLV nodes with 3 outputs (process, dbase, parent), use explicit arrays for deterministic wiring behavior.