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);
}
module.exports = function(app, middleware) {
var router = express.Router(),
pluginRouter = express.Router(),
authRouter = express.Router(),
module.exports = function(app, middleware, hotswapIds) {
var routers = [
express.Router(), // plugin router
express.Router(), // main app router
express.Router() // auth router
],
router = routers[1],
pluginRouter = routers[0],
authRouter = routers[2],
relativePath = nconf.get('relative_path'),
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() {
app.render.apply(app, arguments);
};
@ -119,9 +131,9 @@ module.exports = function(app, middleware) {
userRoutes(router, middleware, controllers);
groupRoutes(router, middleware, controllers);
app.use(relativePath, pluginRouter);
app.use(relativePath, router);
app.use(relativePath, authRouter);
for(var x=0;x<routers.length;x++) {
app.use(relativePath, routers[x]);
}
if (process.env.NODE_ENV === 'development') {
require('./debug')(app, middleware, controllers);

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

Loading…
Cancel
Save