diff --git a/red/api/index.js b/red/api/index.js index e4f01fcbd..3b96ba513 100644 --- a/red/api/index.js +++ b/red/api/index.js @@ -39,7 +39,6 @@ var needsPermission = auth.needsPermission; var i18n; var log; var adminApp; -var nodeApp; var server; var runtime; @@ -68,9 +67,6 @@ function init(_server,_runtime) { var settings = runtime.settings; i18n = runtime.i18n; log = runtime.log; - if (settings.httpNodeRoot !== false) { - nodeApp = express(); - } if (settings.httpAdminRoot !== false) { comms.init(server,runtime); adminApp = express(); @@ -192,6 +188,5 @@ module.exports = { publish: comms.publish }, get adminApp() { return adminApp; }, - get nodeApp() { return nodeApp; }, get server() { return server; } }; diff --git a/red/red.js b/red/red.js index aea6bbbf9..f0480375d 100644 --- a/red/red.js +++ b/red/red.js @@ -53,7 +53,7 @@ module.exports = { userSettings.coreNodesDir = path.resolve(path.join(__dirname,"..","nodes")); } - if (userSettings.httpAdminRoot !== false || userSettings.httpNodeRoot !== false) { + if (userSettings.httpAdminRoot !== false) { runtime.init(userSettings,api); api.init(httpServer,runtime); apiEnabled = true; @@ -62,7 +62,7 @@ module.exports = { apiEnabled = false; } adminApp = runtime.adminApi.adminApp; - nodeApp = runtime.adminApi.nodeApp; + nodeApp = runtime.nodeApp; server = runtime.adminApi.server; return; }, diff --git a/red/runtime/index.js b/red/runtime/index.js index 838cafaff..80443a311 100644 --- a/red/runtime/index.js +++ b/red/runtime/index.js @@ -22,6 +22,8 @@ var log = require("./log"); var i18n = require("./i18n"); var events = require("./events"); var settings = require("./settings"); + +var express = require("express"); var path = require('path'); var fs = require("fs"); var os = require("os"); @@ -47,19 +49,22 @@ var adminApi = { publish: function() {} }, adminApp: stubbedExpressApp, - nodeApp: stubbedExpressApp, server: {} } +var nodeApp; + function init(userSettings,_adminApi) { userSettings.version = getVersion(); log.init(userSettings); settings.init(userSettings); + + nodeApp = express(); + if (_adminApi) { adminApi = _adminApi; } redNodes.init(runtime); - } var version; @@ -189,6 +194,7 @@ var runtime = module.exports = { nodes: redNodes, util: require("./util"), get adminApi() { return adminApi }, + get nodeApp() { return nodeApp }, isStarted: function() { return started; } diff --git a/red/runtime/nodes/registry/loader.js b/red/runtime/nodes/registry/loader.js index 7a9f38ea5..1c9bc4357 100644 --- a/red/runtime/nodes/registry/loader.js +++ b/red/runtime/nodes/registry/loader.js @@ -83,9 +83,11 @@ function createNodeApi(node) { red.library = runtime.adminApi.library; red.auth = runtime.adminApi.auth; red.httpAdmin = runtime.adminApi.adminApp; - red.httpNode = runtime.adminApi.nodeApp; + red.httpNode = runtime.nodeApp; red.server = runtime.adminApi.server; } else { + //TODO: runtime.adminApi is always stubbed if not enabled, so this block + // is unused - but may be needed for the unit tests red.comms = { publish: function() {} };