diff --git a/core/middleware/parameter/multipart.ts b/core/middleware/parameter/multipart.ts index 092a84f..4757bb7 100644 --- a/core/middleware/parameter/multipart.ts +++ b/core/middleware/parameter/multipart.ts @@ -19,7 +19,7 @@ export default async function multipart(ctx: Context, next: Middleware) { //解析multipart数据 const multipartParser = middlewareWrapper(multer({ - storage: ctx.kato.options.files.storage || multer.memoryStorage(), + storage: ctx.kato.options.files.storage ?? multer.memoryStorage(), limits: { files: ctx.kato.options.files.maxCount, fileSize: ctx.kato.options.files.maxSize @@ -30,7 +30,7 @@ export default async function multipart(ctx: Context, next: Middleware) { //文件解析 req.files && req.files.forEach(file => { if (ctx.method.parameters.findIndex(p => p.name === file.fieldname) !== -1) { - ctx.parameters[file.fieldname] = file; + (ctx.parameters[file.fieldname] = (ctx.parameters[file.fieldname] ?? [])).push(file); } }); diff --git a/package-lock.json b/package-lock.json index b7d8c30..3899e44 100755 --- a/package-lock.json +++ b/package-lock.json @@ -1193,6 +1193,15 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", "dev": true }, + "@types/multer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.3.tgz", + "integrity": "sha512-tWsKbF5LYtXrJ7eOfI0aLBgEv9B7fnJe1JRXTj5+Z6EMfX0yHVsRFsNGnKyN8Bs0gtDv+JR37xAqsPnALyVTqg==", + "dev": true, + "requires": { + "@types/express": "*" + } + }, "@types/node": { "version": "12.7.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.2.tgz", @@ -3980,7 +3989,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -4001,12 +4011,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4021,17 +4033,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -4148,7 +4163,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4160,6 +4176,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4174,6 +4191,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4181,12 +4199,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4205,6 +4225,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -4285,7 +4306,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -4297,6 +4319,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -4382,7 +4405,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -4418,6 +4442,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4437,6 +4462,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4480,12 +4506,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -7055,9 +7083,9 @@ "dev": true }, "picomatch": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz", - "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "pify": { @@ -8654,9 +8682,9 @@ "dev": true }, "ts-loader": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-6.0.4.tgz", - "integrity": "sha512-p2zJYe7OtwR+49kv4gs7v4dMrfYD1IPpOtqiSPCbe8oR+4zEBtdHwzM7A7M91F+suReqgzZrlClk4LRSSp882g==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-6.2.2.tgz", + "integrity": "sha512-HDo5kXZCBml3EUPcc7RlZOV/JGlLHwppTLEHb3SHnr5V7NXD4klMEkrhJe5wgRbaWsSXi+Y1SIBN/K9B6zWGWQ==", "dev": true, "requires": { "chalk": "^2.3.0", @@ -8774,9 +8802,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typescript": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.2.tgz", - "integrity": "sha512-lmQ4L+J6mnu3xweP8+rOrUwzmN+MRAj7TgtJtDaXE5PMyX2kCrklhg3rvOsOIfNeAWMQWO2F1GPc1kMD2vLAfw==", + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", + "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", "dev": true }, "uglify-js": { diff --git a/package.json b/package.json index 6f5864f..6dc6911 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "kato-server", - "version": "2.1.1", + "version": "3.0.0-alpha.1", "description": "kato server", "main": "dist/index.js", "types": "./dist/index.d.ts", @@ -40,6 +40,7 @@ "@babel/preset-env": "^7.5.5", "@types/express": "^4.17.1", "@types/jest": "^24.0.18", + "@types/multer": "^1.4.3", "@types/node": "^12.7.2", "@types/supertest": "^2.0.8", "babel-core": "^7.0.0-bridge.0", @@ -52,8 +53,8 @@ "nodemon-webpack-plugin": "^4.0.8", "source-map-support": "^0.5.13", "supertest": "^4.0.2", - "ts-loader": "^6.0.4", - "typescript": "^3.6.2", + "ts-loader": "^6.2.2", + "typescript": "^3.8.3", "webpack": "^4.39.3", "webpack-cli": "^3.3.7", "webpack-merge": "^4.2.2",