diff --git a/packages/core/strapi/lib/middlewares/body.js b/packages/core/strapi/lib/middlewares/body.js index 2f353414de..44982b4a1d 100644 --- a/packages/core/strapi/lib/middlewares/body.js +++ b/packages/core/strapi/lib/middlewares/body.js @@ -21,7 +21,7 @@ module.exports = config => { } try { - return body({ patchKoa: true, ...bodyConfig })(ctx, next); + await body({ patchKoa: true, ...bodyConfig })(ctx, next); } catch (e) { if ((e || {}).message && e.message.includes('maxFileSize exceeded')) { return ctx.payloadTooLarge('FileTooBig'); diff --git a/packages/core/upload/server/bootstrap.js b/packages/core/upload/server/bootstrap.js index 2d224f8246..535742d784 100644 --- a/packages/core/upload/server/bootstrap.js +++ b/packages/core/upload/server/bootstrap.js @@ -22,6 +22,8 @@ module.exports = async ({ strapi }) => { } await registerPermissionActions(); + + strapi.service('plugin::upload.errors').registerErrorMiddleware(); }; const createProvider = config => { diff --git a/packages/core/upload/server/middlewares/handle-errors.js b/packages/core/upload/server/middlewares/errors.js similarity index 82% rename from packages/core/upload/server/middlewares/handle-errors.js rename to packages/core/upload/server/middlewares/errors.js index 8731d71e76..70022098a3 100644 --- a/packages/core/upload/server/middlewares/handle-errors.js +++ b/packages/core/upload/server/middlewares/errors.js @@ -7,7 +7,7 @@ module.exports = () => { try { await next(); } catch (e) { - if (e instanceof FileTooLargeError) return ctx.PayloadTooLarge(); + if (e instanceof FileTooLargeError) return ctx.payloadTooLarge(); if (e instanceof FileNotFoundError) return ctx.notFound(); throw e; } diff --git a/packages/core/upload/server/middlewares/index.js b/packages/core/upload/server/middlewares/index.js index 45cdb4d812..f49f55843b 100644 --- a/packages/core/upload/server/middlewares/index.js +++ b/packages/core/upload/server/middlewares/index.js @@ -1,5 +1,5 @@ 'use strict'; module.exports = { - 'handle-errors': require('./handle-errors'), + handleErrors: require('./errors'), }; diff --git a/packages/core/upload/server/services/errors.js b/packages/core/upload/server/services/errors.js new file mode 100644 index 0000000000..7aaa2dcb3f --- /dev/null +++ b/packages/core/upload/server/services/errors.js @@ -0,0 +1,10 @@ +'use strict'; + +const initErrorMiddleware = require('../middlewares/errors'); + +module.exports = ({ strapi }) => ({ + registerErrorMiddleware() { + const errorMiddleware = initErrorMiddleware({ strapi }); + strapi.server.router.use('/upload', errorMiddleware); + }, +}); diff --git a/packages/core/upload/server/services/index.js b/packages/core/upload/server/services/index.js index 1c9cd926b4..c40c12bffc 100644 --- a/packages/core/upload/server/services/index.js +++ b/packages/core/upload/server/services/index.js @@ -1,9 +1,11 @@ 'use strict'; +const errorService = require('./errors'); const uploadService = require('./upload'); const imageManipulation = require('./image-manipulation'); module.exports = { + errors: errorService, upload: uploadService, 'image-manipulation': imageManipulation, };