Added function names to more middleware
refs 319f251ad2
- this helps debugging because all middleware in the stack will have a
function name, so it'll show up instead of `<anonymous>`
This commit is contained in:
parent
2aad4ca06f
commit
265a8dd16f
@ -15,7 +15,7 @@ const isMaintenanceModeEnabled = (req) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// We never want middleware functions to be anonymous
|
// We never want middleware functions to be anonymous
|
||||||
const maintenanceMiddleware = (req, res, next) => {
|
const maintenanceMiddleware = function maintenanceMiddleware(req, res, next) {
|
||||||
if (!isMaintenanceModeEnabled(req)) {
|
if (!isMaintenanceModeEnabled(req)) {
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ const errorFallbackMessage = err => `<h1>${tpl(messages.oopsErrorTemplateHasErro
|
|||||||
<br ><p>${tpl(messages.whilstTryingToRender)}</p>
|
<br ><p>${tpl(messages.whilstTryingToRender)}</p>
|
||||||
${err.statusCode} <pre>${escapeExpression(err.message || err)}</pre>`;
|
${err.statusCode} <pre>${escapeExpression(err.message || err)}</pre>`;
|
||||||
|
|
||||||
const themeErrorRenderer = (err, req, res, next) => {
|
const themeErrorRenderer = function themeErrorRenderer(err, req, res, next) {
|
||||||
// If the error code is explicitly set to STATIC_FILE_NOT_FOUND,
|
// If the error code is explicitly set to STATIC_FILE_NOT_FOUND,
|
||||||
// Skip trying to render an HTML error, and move on to the basic error renderer
|
// Skip trying to render an HTML error, and move on to the basic error renderer
|
||||||
// We do this because customised 404 templates could reference the image that's missing
|
// We do this because customised 404 templates could reference the image that's missing
|
||||||
|
@ -50,7 +50,7 @@ module.exports = function setupSiteApp(routerConfig) {
|
|||||||
// enable CORS headers (allows admin client to hit front-end when configured on separate URLs)
|
// enable CORS headers (allows admin client to hit front-end when configured on separate URLs)
|
||||||
siteApp.use(mw.cors);
|
siteApp.use(mw.cors);
|
||||||
|
|
||||||
siteApp.use(async (req, res, next) => {
|
siteApp.use(async function nestApp(req, res, next) {
|
||||||
if (labs.isSet('NestPlayground') || labs.isSet('ActivityPub')) {
|
if (labs.isSet('NestPlayground') || labs.isSet('ActivityPub')) {
|
||||||
const originalExpressApp = req.app;
|
const originalExpressApp = req.app;
|
||||||
const app = await GhostNestApp.getApp();
|
const app = await GhostNestApp.getApp();
|
||||||
@ -112,7 +112,9 @@ module.exports = function setupSiteApp(routerConfig) {
|
|||||||
siteApp.use(
|
siteApp.use(
|
||||||
'/members/.well-known',
|
'/members/.well-known',
|
||||||
shared.middleware.cacheControl('public', {maxAge: config.get('caching:wellKnown:maxAge')}),
|
shared.middleware.cacheControl('public', {maxAge: config.get('caching:wellKnown:maxAge')}),
|
||||||
(req, res, next) => membersService.api.middleware.wellKnown(req, res, next)
|
function lazyWellKnownMw(req, res, next) {
|
||||||
|
return membersService.api.middleware.wellKnown(req, res, next);
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
// Recommendations well-known
|
// Recommendations well-known
|
||||||
|
@ -31,7 +31,7 @@ const session = {
|
|||||||
email: object.username,
|
email: object.username,
|
||||||
password: object.password
|
password: object.password
|
||||||
}).then((user) => {
|
}).then((user) => {
|
||||||
return Promise.resolve((req, res, next) => {
|
return Promise.resolve(function sessionMiddleware(req, res, next) {
|
||||||
req.brute.reset(function (err) {
|
req.brute.reset(function (err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
return next(err);
|
return next(err);
|
||||||
@ -60,7 +60,7 @@ const session = {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
delete() {
|
delete() {
|
||||||
return Promise.resolve((req, res, next) => {
|
return Promise.resolve(function destroySessionMw(req, res, next) {
|
||||||
auth.session.destroySession(req, res, next);
|
auth.session.destroySession(req, res, next);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ module.exports = function setupAdminApp() {
|
|||||||
// request to the Admin API /users/me/ endpoint to check if the user is logged in.
|
// request to the Admin API /users/me/ endpoint to check if the user is logged in.
|
||||||
//
|
//
|
||||||
// Used by comments-ui to add moderation options to front-end comments when logged in.
|
// Used by comments-ui to add moderation options to front-end comments when logged in.
|
||||||
adminApp.use('/auth-frame', (req, res, next) => {
|
adminApp.use('/auth-frame', function authFrameMw(req, res, next) {
|
||||||
// only render content when we have an Admin session cookie,
|
// only render content when we have an Admin session cookie,
|
||||||
// otherwise return a 204 to avoid JS and API requests being made unnecessarily
|
// otherwise return a 204 to avoid JS and API requests being made unnecessarily
|
||||||
try {
|
try {
|
||||||
|
@ -35,7 +35,7 @@ module.exports = function setupApiApp() {
|
|||||||
// Routing
|
// Routing
|
||||||
apiApp.use(routes());
|
apiApp.use(routes());
|
||||||
|
|
||||||
apiApp.use(async (req, res, next) => {
|
apiApp.use(async function nestApp(req, res, next) {
|
||||||
if (labs.isSet('NestPlayground') || labs.isSet('ActivityPub')) {
|
if (labs.isSet('NestPlayground') || labs.isSet('ActivityPub')) {
|
||||||
const originalExpressApp = req.app;
|
const originalExpressApp = req.app;
|
||||||
const app = await GhostNestApp.getApp();
|
const app = await GhostNestApp.getApp();
|
||||||
|
@ -61,11 +61,19 @@ module.exports = function setupMembersApp() {
|
|||||||
shared.middleware.brute.membersAuthEnumeration,
|
shared.middleware.brute.membersAuthEnumeration,
|
||||||
// Prevent brute forcing passwords for the same email address
|
// Prevent brute forcing passwords for the same email address
|
||||||
shared.middleware.brute.membersAuth,
|
shared.middleware.brute.membersAuth,
|
||||||
(req, res, next) => membersService.api.middleware.sendMagicLink(req, res, next)
|
function lazySendMagicLinkMw(req, res, next) {
|
||||||
|
return membersService.api.middleware.sendMagicLink(req, res, next);
|
||||||
|
}
|
||||||
);
|
);
|
||||||
membersApp.post('/api/create-stripe-checkout-session', (req, res, next) => membersService.api.middleware.createCheckoutSession(req, res, next));
|
membersApp.post('/api/create-stripe-checkout-session', function lazyCreateCheckoutSessionMw(req, res, next) {
|
||||||
membersApp.post('/api/create-stripe-update-session', (req, res, next) => membersService.api.middleware.createCheckoutSetupSession(req, res, next));
|
return membersService.api.middleware.createCheckoutSession(req, res, next);
|
||||||
membersApp.put('/api/subscriptions/:id', (req, res, next) => membersService.api.middleware.updateSubscription(req, res, next));
|
});
|
||||||
|
membersApp.post('/api/create-stripe-update-session', function lazyCreateCheckoutSetupSessionMw(req, res, next) {
|
||||||
|
return membersService.api.middleware.createCheckoutSetupSession(req, res, next);
|
||||||
|
});
|
||||||
|
membersApp.put('/api/subscriptions/:id', function lazyUpdateSubscriptionMw(req, res, next) {
|
||||||
|
return membersService.api.middleware.updateSubscription(req, res, next);
|
||||||
|
});
|
||||||
|
|
||||||
// Comments
|
// Comments
|
||||||
membersApp.use('/api/comments', commentRouter());
|
membersApp.use('/api/comments', commentRouter());
|
||||||
|
@ -44,7 +44,7 @@ module.exports = function queueRequest(
|
|||||||
debug(`Request completed: ${job.data.req.path}`);
|
debug(`Request completed: ${job.data.req.path}`);
|
||||||
});
|
});
|
||||||
|
|
||||||
return (req, res, next) => {
|
return function queueRequestMw(req, res, next) {
|
||||||
req.queueDepth = queue.queue.getLength();
|
req.queueDepth = queue.queue.getLength();
|
||||||
|
|
||||||
// Do not queue requests for static assets - We assume that any path
|
// Do not queue requests for static assets - We assume that any path
|
||||||
|
@ -142,7 +142,7 @@ module.exports.enabledHelper = function enabledHelper(options, callback) {
|
|||||||
return errString;
|
return errString;
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports.enabledMiddleware = flag => (req, res, next) => {
|
module.exports.enabledMiddleware = flag => function labsEnabledMw(req, res, next) {
|
||||||
if (module.exports.isSet(flag) === true) {
|
if (module.exports.isSet(flag) === true) {
|
||||||
return next();
|
return next();
|
||||||
} else {
|
} else {
|
||||||
|
@ -317,7 +317,7 @@ module.exports = function MembersAPI({
|
|||||||
return getMemberIdentityData(email);
|
return getMemberIdentityData(email);
|
||||||
}
|
}
|
||||||
|
|
||||||
const forwardError = fn => async (req, res, next) => {
|
const forwardError = fn => async function forwardErrorMw(req, res, next) {
|
||||||
try {
|
try {
|
||||||
await fn(req, res, next);
|
await fn(req, res, next);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
@ -7,7 +7,7 @@ const versionMismatchHandler = (APIVersionCompatibilityService) => {
|
|||||||
* @param {import('express').Response} res
|
* @param {import('express').Response} res
|
||||||
* @param {import('express').NextFunction} next
|
* @param {import('express').NextFunction} next
|
||||||
*/
|
*/
|
||||||
return async (err, req, res, next) => {
|
return async function versionMismatchHandlerMiddlware(err, req, res, next) {
|
||||||
if (err && err.errorType === 'RequestNotAcceptableError') {
|
if (err && err.errorType === 'RequestNotAcceptableError') {
|
||||||
if (err.code === 'UPDATE_CLIENT') {
|
if (err.code === 'UPDATE_CLIENT') {
|
||||||
const {key, type} = extractApiKey(req);
|
const {key, type} = extractApiKey(req);
|
||||||
|
@ -23,9 +23,9 @@ const sessionFromTokenMiddleware = require('@tryghost/mw-session-from-token')({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
someExpressApp.get('/some/sso/url', someSessionMiddleware, sessionFromTokenMiddleware, (req, res, next) => {
|
someExpressApp.get('/some/sso/url', someSessionMiddleware, sessionFromTokenMiddleware, function sessionFromTokenMiddleware(req, res, next) {
|
||||||
res.redirect('/loggedin');
|
res.redirect('/loggedin');
|
||||||
}, (err, res, res, next) => {
|
}, function nextMw(err, res, res, next) => {
|
||||||
res.redirect('/error');
|
res.redirect('/error');
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
@ -24,7 +24,7 @@ const sessionService = SessionService({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
app.use(async (req, res, next) => {
|
app.use(async function sessionMiddleware(req, res, next) {
|
||||||
try {
|
try {
|
||||||
const user = await sessionService.getUserForSession(req, res);
|
const user = await sessionService.getUserForSession(req, res);
|
||||||
req.user = user;
|
req.user = user;
|
||||||
|
Loading…
Reference in New Issue
Block a user