Node-RED: How to Require Node.js Native Modules

This documentation is part of the Getting Started guide. You can view the complete guide here: How to Get Started with Node-RED.

Welcome to the Stackhero documentation

Stackhero offers a fully managed Node-RED cloud environment designed to help you build workflows quickly:

  • Integrated MQTT server (Mosquitto) for seamless IoT integration.
  • Full access to the Node-RED admin interface for managing your flows and settings.
  • Node-RED Dashboard included for real-time visualisation.
  • Dedicated SMTP email server included, with no sending limits.
  • Effortless one-click updates to keep your instance up to date.
  • Custom domain names with automatic HTTPS: for example, https://node-red.your-company.com.
  • High performance and enhanced security thanks to private, dedicated infrastructure.

You can have a secure, production-ready Node-RED cloud hosting instance running in around 5 minutes. Stackhero takes care of installation, updates, and infrastructure, so you can focus on building your automations.

In Node-RED functions, trying to require a Node.js native module directly results in the error ReferenceError: require is not defined. This is because Node-RED does not allow you to require a Node.js module directly inside a function.

To resolve this, these modules have been integrated into the Node-RED global context. You can access them using context.global.

For example, if you need the crypto module, declare it like this:

const { crypto } = context.global;

The following Node.js modules are available: util, buffer, child_process, crypto, fs, os, http, http2, https, and zlib.