芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/app.optimyar.com/backend/node_modules/strapi/lib/middlewares/parser/index.js
'use strict'; const body = require('koa-body'); const qs = require('qs'); const { omit } = require('lodash'); /** * Body parser hook */ const addQsParser = (app, settings) => { Object.defineProperty(app.request, 'query', { configurable: false, enumerable: true, /* * Get parsed query-string. */ get() { const qstr = this.querystring; const cache = (this._querycache = this._querycache || {}); return cache[qstr] || (cache[qstr] = qs.parse(qstr, settings)); }, /* * Set query-string as an object. */ set(obj) { this.querystring = qs.stringify(obj); }, }); return app; }; module.exports = strapi => { return { /** * Initialize the hook */ initialize() { strapi.app.use(async (ctx, next) => { // disable for graphql // TODO: find a better way later if (ctx.url === '/graphql') { return next(); } try { const res = await body({ patchKoa: true, ...omit(strapi.config.middleware.settings.parser, 'queryStringParser'), })(ctx, next); return res; } catch (e) { if ((e || {}).message && e.message.includes('maxFileSize exceeded')) { throw strapi.errors.entityTooLarge('FileTooBig', { errors: [ { id: 'Upload.status.sizeLimit', message: `file is bigger than the limit size!`, }, ], }); } throw e; } }); addQsParser(strapi.app, strapi.config.get('middleware.settings.parser.queryStringParser')); }, }; };