diff --git a/lib/server/extensions.js b/lib/server/extensions.js index 3d0d35f07..c27b9d05a 100644 --- a/lib/server/extensions.js +++ b/lib/server/extensions.js @@ -77,7 +77,7 @@ function _loadExtension(bundle) { try { var extension = require(extPath)(new ExtensionApi(bundle)); if (bundle.extension.express) { - expressExtensions.push(extension); + expressExtensions.push([extension, bundle.name]); log.info('Mounted %s extension as an express app', bundle.name); } else { log.info('Mounted %s extension as a generic extension', bundle.name); diff --git a/lib/server/index.js b/lib/server/index.js index a1bf158bb..5e9f08952 100644 --- a/lib/server/index.js +++ b/lib/server/index.js @@ -54,8 +54,16 @@ exports.start = function() { extensionManager = require('./extensions.js'); extensionManager.on('extensionsLoaded', function() { - extensionManager.getExpressExtensions().forEach(function(extension) { - app.use(extension); + extensionManager.getExpressExtensions().forEach(function(extData) { + var extension = extData[0]; + var name = extData[1]; + try { + app.use(extension); + } catch(e) { + log.error('Failed to mount extension for bundle "%s" as an express app.' + + '\n\tEither make sure your extension is actually exporting an express app,' + + '\n\tor set "extension.express" to "false" in your nodecg.json', name); + } }); exports.emit('extensionsLoaded');