0

I'm using node-red as embedded in my Express.js application like this https://nodered.org/docs/embedding. When embedded like this node-red cant load new nodes from npm.

Issue is that when defining custom user dir in settings.js, for example userDir: 'node-red-data/' Node-red adds loaded nodes to this folder inside node_modules.

So I have two node_modules folder:

myapp/node_modules => this is containing node-red
myapp/node-red-data/node_modules => this is containing node-red extra nodes

Some how node-red can't load modules in side myapp/node-red-data/node_modules

Is there any solutions?

user257980
  • 1,059
  • 2
  • 15
  • 31

2 Answers2

1

Issue was on the settings file.

My setting in user dir:

var settings = {
    httpAdminRoot: '/admin',
    httpNodeRoot: '/ap',
    nodesDir: '/nodes',
    flowFile: "flows.json",
    userDir: './data/'
}

Right setup:

var path = require('path');
var dir = path.dirname(__filename);
var settings = {
    httpAdminRoot: '/admin',
    httpNodeRoot: '/ap',
    nodesDir: dir + '/nodes',
    flowFile: "flows.json",
    userDir: dir+'/data/'
}

So adding static path to user dir and nodes dir makes it working

user257980
  • 1,059
  • 2
  • 15
  • 31
0

I have similar problem.
I used process.execPath

userdir = path.resolve(process.execPath,'..'); //better that __dirname; 

Because the dir is diferent when application is compiled.

// Create the settings object - see default settings.js file for other options
var settings = {
    verbose: true,
    httpAdminRoot:"/admin",
    httpNodeRoot: "/",
    userDir: userdir, // problem with dir...
    flowFile: 'flows.json',
};
Em50L
  • 11
  • 2