You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nodebb/src/routes/helpers.js

27 lines
922 B
JavaScript

'use strict';
var helpers = module.exports;
helpers.setupPageRoute = function (router, name, middleware, middlewares, controller) {
middlewares = [middleware.maintenanceMode, middleware.registrationComplete, middleware.pageView, middleware.pluginHooks].concat(middlewares);
async function tryRoute(req, res, next) {
if (controller && controller.constructor && controller.constructor.name === 'AsyncFunction') {
try {
return await controller(req, res, next);
} catch (err) {
return next(err);
}
}
controller(req, res, next);
}
router.get(name, middleware.busyCheck, middleware.buildHeader, middlewares, tryRoute);
router.get('/api' + name, middlewares, tryRoute);
};
helpers.setupAdminPageRoute = function (router, name, middleware, middlewares, controller) {
router.get(name, middleware.admin.buildHeader, middlewares, controller);
router.get('/api' + name, middlewares, controller);
};