From 369c1a2769c4709e48b92f703a2b4adad974efbd Mon Sep 17 00:00:00 2001 From: Alex Van Camp Date: Tue, 17 Feb 2015 11:17:02 -0600 Subject: [PATCH] log a better error message when failing to mount an extension as an express app --- lib/server/extensions.js | 2 +- lib/server/index.js | 12 ++++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) 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');