added new hook for hotswap preparation

v1.18.x
Julian Lam 9 years ago
parent dde7f26944
commit 2ddcaa9ce1

@ -80,13 +80,25 @@ function groupRoutes(app, middleware, controllers) {
setupPageRoute(app, '/groups/:slug/members', middleware, middlewares, controllers.groups.members); setupPageRoute(app, '/groups/:slug/members', middleware, middlewares, controllers.groups.members);
} }
module.exports = function(app, middleware) { module.exports = function(app, middleware, hotswapIds) {
var router = express.Router(), var routers = [
pluginRouter = express.Router(), express.Router(), // plugin router
authRouter = express.Router(), express.Router(), // main app router
express.Router() // auth router
],
router = routers[1],
pluginRouter = routers[0],
authRouter = routers[2],
relativePath = nconf.get('relative_path'), relativePath = nconf.get('relative_path'),
ensureLoggedIn = require('connect-ensure-login'); ensureLoggedIn = require('connect-ensure-login');
if (Array.isArray(hotswapIds) && hotswapIds.length) {
for(var idx,x=0;x<hotswapIds.length;x++) {
idx = routers.push(express.Router()) - 1;
routers[idx].hotswapId = hotswapIds[x];
}
}
pluginRouter.render = function() { pluginRouter.render = function() {
app.render.apply(app, arguments); app.render.apply(app, arguments);
}; };
@ -119,9 +131,9 @@ module.exports = function(app, middleware) {
userRoutes(router, middleware, controllers); userRoutes(router, middleware, controllers);
groupRoutes(router, middleware, controllers); groupRoutes(router, middleware, controllers);
app.use(relativePath, pluginRouter); for(var x=0;x<routers.length;x++) {
app.use(relativePath, router); app.use(relativePath, routers[x]);
app.use(relativePath, authRouter); }
if (process.env.NODE_ENV === 'development') { if (process.env.NODE_ENV === 'development') {
require('./debug')(app, middleware, controllers); require('./debug')(app, middleware, controllers);

@ -101,8 +101,9 @@ function initializeNodeBB(callback) {
middleware: middleware middleware: middleware
}, next); }, next);
}, },
function(next) { async.apply(plugins.fireHook, 'filter:hotswap.prepare', []),
routes(app, middleware); function(hotswapIds, next) {
routes(app, middleware, hotswapIds);
next(); next();
} }
], callback); ], callback);

Loading…
Cancel
Save