Search code examples
node.jsmongodbexpressnode-red

Node-Red mongodb3 connect DB using URL from environment variable


I'm running Node-Red embedded in Express application. Also using 'dotenv' to load environment variables.

For storage using MongoDB with 'node-red-contrib-mongodb3'.

Everything works as expected. But, I have different environments and different MongoDB for each environments.

I want to connect to MongoDB from configuration (.env file or environment file).

Something like, in MongoDB config node URL input box golbal.get('env').MONGODB_DEV_URL or msg.MONGODB_URL

Tried looking for an option in the documentation of 'mongodb3' and google, still no luck. Any help or direction will be appreciated.


Solution

  • From the Node-RED docs

    Any node property can be set with an environment variable by setting its value to a string of the form ${ENV_VAR}. When the runtime loads the flows, it will substitute the value of that environment variable before passing it to the node.

    This only works if it replaces the entire property - it cannot be used to substitute just part of the value. For example, it is not possible to use CLIENT-${HOST}.