mirror of
https://github.com/pure-admin/pure-admin-backend.git
synced 2025-04-24 15:27:17 +08:00
feat: 添加文件上传接口
This commit is contained in:
parent
960ee31659
commit
c528be50b7
2
.gitignore
vendored
2
.gitignore
vendored
@ -82,3 +82,5 @@ dist
|
|||||||
docs
|
docs
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
upload_tmp
|
||||||
|
public/images/
|
@ -8,11 +8,12 @@
|
|||||||
"author": "xiaoxian521",
|
"author": "xiaoxian521",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@pureadmin/utils": "^1.4.0",
|
||||||
"@types/body-parser": "^1.19.2",
|
"@types/body-parser": "^1.19.2",
|
||||||
"@types/express": "^4.17.14",
|
"@types/express": "^4.17.14",
|
||||||
"@types/express-ws": "^3.0.1",
|
"@types/express-ws": "^3.0.1",
|
||||||
"@types/formidable": "^2.0.5",
|
|
||||||
"@types/jsonwebtoken": "^8.5.9",
|
"@types/jsonwebtoken": "^8.5.9",
|
||||||
|
"@types/multer": "^1.4.7",
|
||||||
"@types/node": "^18.11.9",
|
"@types/node": "^18.11.9",
|
||||||
"@types/ws": "^8.5.3",
|
"@types/ws": "^8.5.3",
|
||||||
"body-parser": "^1.20.1",
|
"body-parser": "^1.20.1",
|
||||||
@ -22,8 +23,8 @@
|
|||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"express-swagger-generator": "^1.1.17",
|
"express-swagger-generator": "^1.1.17",
|
||||||
"express-ws": "^5.0.2",
|
"express-ws": "^5.0.2",
|
||||||
"formidable": "^2.0.1",
|
|
||||||
"jsonwebtoken": "^8.5.1",
|
"jsonwebtoken": "^8.5.1",
|
||||||
|
"multer": "1.4.5-lts.1",
|
||||||
"mysql2": "^2.3.3",
|
"mysql2": "^2.3.3",
|
||||||
"nodemon": "^2.0.20",
|
"nodemon": "^2.0.20",
|
||||||
"open": "^8.4.0",
|
"open": "^8.4.0",
|
||||||
|
167
pnpm-lock.yaml
generated
167
pnpm-lock.yaml
generated
@ -1,11 +1,12 @@
|
|||||||
lockfileVersion: 5.4
|
lockfileVersion: 5.4
|
||||||
|
|
||||||
specifiers:
|
specifiers:
|
||||||
|
'@pureadmin/utils': ^1.4.0
|
||||||
'@types/body-parser': ^1.19.2
|
'@types/body-parser': ^1.19.2
|
||||||
'@types/express': ^4.17.14
|
'@types/express': ^4.17.14
|
||||||
'@types/express-ws': ^3.0.1
|
'@types/express-ws': ^3.0.1
|
||||||
'@types/formidable': ^2.0.5
|
|
||||||
'@types/jsonwebtoken': ^8.5.9
|
'@types/jsonwebtoken': ^8.5.9
|
||||||
|
'@types/multer': ^1.4.7
|
||||||
'@types/node': ^18.11.9
|
'@types/node': ^18.11.9
|
||||||
'@types/ws': ^8.5.3
|
'@types/ws': ^8.5.3
|
||||||
body-parser: ^1.20.1
|
body-parser: ^1.20.1
|
||||||
@ -15,8 +16,8 @@ specifiers:
|
|||||||
express: ^4.18.2
|
express: ^4.18.2
|
||||||
express-swagger-generator: ^1.1.17
|
express-swagger-generator: ^1.1.17
|
||||||
express-ws: ^5.0.2
|
express-ws: ^5.0.2
|
||||||
formidable: ^2.0.1
|
|
||||||
jsonwebtoken: ^8.5.1
|
jsonwebtoken: ^8.5.1
|
||||||
|
multer: 1.4.5-lts.1
|
||||||
mysql2: ^2.3.3
|
mysql2: ^2.3.3
|
||||||
nodemon: ^2.0.20
|
nodemon: ^2.0.20
|
||||||
open: ^8.4.0
|
open: ^8.4.0
|
||||||
@ -26,11 +27,12 @@ specifiers:
|
|||||||
winston: ^3.8.2
|
winston: ^3.8.2
|
||||||
|
|
||||||
devDependencies:
|
devDependencies:
|
||||||
|
'@pureadmin/utils': 1.4.0_dayjs@1.11.6
|
||||||
'@types/body-parser': 1.19.2
|
'@types/body-parser': 1.19.2
|
||||||
'@types/express': 4.17.14
|
'@types/express': 4.17.14
|
||||||
'@types/express-ws': 3.0.1
|
'@types/express-ws': 3.0.1
|
||||||
'@types/formidable': 2.0.5
|
|
||||||
'@types/jsonwebtoken': 8.5.9
|
'@types/jsonwebtoken': 8.5.9
|
||||||
|
'@types/multer': 1.4.7
|
||||||
'@types/node': 18.11.9
|
'@types/node': 18.11.9
|
||||||
'@types/ws': 8.5.3
|
'@types/ws': 8.5.3
|
||||||
body-parser: 1.20.1
|
body-parser: 1.20.1
|
||||||
@ -40,8 +42,8 @@ devDependencies:
|
|||||||
express: 4.18.2
|
express: 4.18.2
|
||||||
express-swagger-generator: 1.1.17
|
express-swagger-generator: 1.1.17
|
||||||
express-ws: 5.0.2_express@4.18.2
|
express-ws: 5.0.2_express@4.18.2
|
||||||
formidable: 2.0.1
|
|
||||||
jsonwebtoken: 8.5.1
|
jsonwebtoken: 8.5.1
|
||||||
|
multer: 1.4.5-lts.1
|
||||||
mysql2: 2.3.3
|
mysql2: 2.3.3
|
||||||
nodemon: 2.0.20
|
nodemon: 2.0.20
|
||||||
open: 8.4.0
|
open: 8.4.0
|
||||||
@ -127,6 +129,23 @@ packages:
|
|||||||
'@jridgewell/sourcemap-codec': 1.4.14
|
'@jridgewell/sourcemap-codec': 1.4.14
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@pureadmin/utils/1.4.0_dayjs@1.11.6:
|
||||||
|
resolution: {integrity: sha512-xuy4/gPXoyUuTxxJGmyriXl8n4QGl9ya9Hh+deZvfhixlKHWyAz+ByJfwTb//B7b9Lpj/3sa53wTMC/oYgXAjQ==}
|
||||||
|
peerDependencies:
|
||||||
|
dayjs: '*'
|
||||||
|
echarts: '*'
|
||||||
|
vue: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
dayjs:
|
||||||
|
optional: true
|
||||||
|
echarts:
|
||||||
|
optional: true
|
||||||
|
vue:
|
||||||
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
dayjs: 1.11.6
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@tsconfig/node10/1.0.9:
|
/@tsconfig/node10/1.0.9:
|
||||||
resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
|
resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -181,12 +200,6 @@ packages:
|
|||||||
'@types/serve-static': 1.15.0
|
'@types/serve-static': 1.15.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@types/formidable/2.0.5:
|
|
||||||
resolution: {integrity: sha512-uvMcdn/KK3maPOaVUAc3HEYbCEhjaGFwww4EsX6IJfWIJ1tzHtDHczuImH3GKdusPnAAmzB07St90uabZeCKPA==}
|
|
||||||
dependencies:
|
|
||||||
'@types/node': 18.11.9
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@types/jsonwebtoken/8.5.9:
|
/@types/jsonwebtoken/8.5.9:
|
||||||
resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==}
|
resolution: {integrity: sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -197,6 +210,12 @@ packages:
|
|||||||
resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==}
|
resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/@types/multer/1.4.7:
|
||||||
|
resolution: {integrity: sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==}
|
||||||
|
dependencies:
|
||||||
|
'@types/express': 4.17.14
|
||||||
|
dev: true
|
||||||
|
|
||||||
/@types/node/18.11.9:
|
/@types/node/18.11.9:
|
||||||
resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==}
|
resolution: {integrity: sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -253,6 +272,10 @@ packages:
|
|||||||
picomatch: 2.3.1
|
picomatch: 2.3.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/append-field/1.0.0:
|
||||||
|
resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/arg/4.1.3:
|
/arg/4.1.3:
|
||||||
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
|
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -267,10 +290,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
|
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/asap/2.0.6:
|
|
||||||
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/async/3.2.4:
|
/async/3.2.4:
|
||||||
resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
|
resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -326,6 +345,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
|
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/busboy/1.6.0:
|
||||||
|
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
|
||||||
|
engines: {node: '>=10.16.0'}
|
||||||
|
dependencies:
|
||||||
|
streamsearch: 1.1.0
|
||||||
|
dev: true
|
||||||
|
|
||||||
/bytes/3.1.2:
|
/bytes/3.1.2:
|
||||||
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
|
resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
@ -402,6 +428,16 @@ packages:
|
|||||||
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/concat-stream/1.6.2:
|
||||||
|
resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==}
|
||||||
|
engines: {'0': node >= 0.8}
|
||||||
|
dependencies:
|
||||||
|
buffer-from: 1.1.2
|
||||||
|
inherits: 2.0.4
|
||||||
|
readable-stream: 2.3.7
|
||||||
|
typedarray: 0.0.6
|
||||||
|
dev: true
|
||||||
|
|
||||||
/content-disposition/0.5.4:
|
/content-disposition/0.5.4:
|
||||||
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
|
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
@ -429,6 +465,10 @@ packages:
|
|||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/core-util-is/1.0.3:
|
||||||
|
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/create-require/1.1.1:
|
/create-require/1.1.1:
|
||||||
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
|
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -491,13 +531,6 @@ packages:
|
|||||||
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
|
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/dezalgo/1.0.3:
|
|
||||||
resolution: {integrity: sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==}
|
|
||||||
dependencies:
|
|
||||||
asap: 2.0.6
|
|
||||||
wrappy: 1.0.2
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/diff/4.0.2:
|
/diff/4.0.2:
|
||||||
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
|
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
|
||||||
engines: {node: '>=0.3.1'}
|
engines: {node: '>=0.3.1'}
|
||||||
@ -884,15 +917,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==}
|
resolution: {integrity: sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/formidable/2.0.1:
|
|
||||||
resolution: {integrity: sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==}
|
|
||||||
dependencies:
|
|
||||||
dezalgo: 1.0.3
|
|
||||||
hexoid: 1.0.0
|
|
||||||
once: 1.4.0
|
|
||||||
qs: 6.9.3
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/forwarded/0.2.0:
|
/forwarded/0.2.0:
|
||||||
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
|
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
@ -972,11 +996,6 @@ packages:
|
|||||||
function-bind: 1.1.1
|
function-bind: 1.1.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/hexoid/1.0.0:
|
|
||||||
resolution: {integrity: sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==}
|
|
||||||
engines: {node: '>=8'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/http-errors/2.0.0:
|
/http-errors/2.0.0:
|
||||||
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
|
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
|
||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
@ -1072,6 +1091,10 @@ packages:
|
|||||||
is-docker: 2.2.1
|
is-docker: 2.2.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/isarray/1.0.0:
|
||||||
|
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/js-yaml/3.14.1:
|
/js-yaml/3.14.1:
|
||||||
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
|
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@ -1240,6 +1263,17 @@ packages:
|
|||||||
brace-expansion: 1.1.11
|
brace-expansion: 1.1.11
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/minimist/1.2.7:
|
||||||
|
resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/mkdirp/0.5.6:
|
||||||
|
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
|
||||||
|
hasBin: true
|
||||||
|
dependencies:
|
||||||
|
minimist: 1.2.7
|
||||||
|
dev: true
|
||||||
|
|
||||||
/ms/2.0.0:
|
/ms/2.0.0:
|
||||||
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
|
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -1248,6 +1282,19 @@ packages:
|
|||||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/multer/1.4.5-lts.1:
|
||||||
|
resolution: {integrity: sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==}
|
||||||
|
engines: {node: '>= 6.0.0'}
|
||||||
|
dependencies:
|
||||||
|
append-field: 1.0.0
|
||||||
|
busboy: 1.6.0
|
||||||
|
concat-stream: 1.6.2
|
||||||
|
mkdirp: 0.5.6
|
||||||
|
object-assign: 4.1.1
|
||||||
|
type-is: 1.6.18
|
||||||
|
xtend: 4.0.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
/mysql2/2.3.3:
|
/mysql2/2.3.3:
|
||||||
resolution: {integrity: sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==}
|
resolution: {integrity: sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==}
|
||||||
engines: {node: '>= 8.0'}
|
engines: {node: '>= 8.0'}
|
||||||
@ -1303,6 +1350,11 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/object-assign/4.1.1:
|
||||||
|
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/object-inspect/1.12.2:
|
/object-inspect/1.12.2:
|
||||||
resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
|
resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -1375,6 +1427,10 @@ packages:
|
|||||||
engines: {node: '>=8.6'}
|
engines: {node: '>=8.6'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/process-nextick-args/2.0.1:
|
||||||
|
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/proxy-addr/2.0.7:
|
/proxy-addr/2.0.7:
|
||||||
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
|
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
|
||||||
engines: {node: '>= 0.10'}
|
engines: {node: '>= 0.10'}
|
||||||
@ -1398,11 +1454,6 @@ packages:
|
|||||||
side-channel: 1.0.4
|
side-channel: 1.0.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/qs/6.9.3:
|
|
||||||
resolution: {integrity: sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==}
|
|
||||||
engines: {node: '>=0.6'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/range-parser/1.2.1:
|
/range-parser/1.2.1:
|
||||||
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
|
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
@ -1418,6 +1469,18 @@ packages:
|
|||||||
unpipe: 1.0.0
|
unpipe: 1.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/readable-stream/2.3.7:
|
||||||
|
resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
|
||||||
|
dependencies:
|
||||||
|
core-util-is: 1.0.3
|
||||||
|
inherits: 2.0.4
|
||||||
|
isarray: 1.0.0
|
||||||
|
process-nextick-args: 2.0.1
|
||||||
|
safe-buffer: 5.1.2
|
||||||
|
string_decoder: 1.1.1
|
||||||
|
util-deprecate: 1.0.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
/readable-stream/3.6.0:
|
/readable-stream/3.6.0:
|
||||||
resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
|
resolution: {integrity: sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
@ -1438,6 +1501,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-SqfNKjjTw7Lq3E2S6P8L5Ac7YFD91mbkzWRlxrWK4tWioJRKDhe1+PtWS0X0hkQNEzZDpSish0TTXAVM4cRUzQ==}
|
resolution: {integrity: sha512-SqfNKjjTw7Lq3E2S6P8L5Ac7YFD91mbkzWRlxrWK4tWioJRKDhe1+PtWS0X0hkQNEzZDpSish0TTXAVM4cRUzQ==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/safe-buffer/5.1.2:
|
||||||
|
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/safe-buffer/5.2.1:
|
/safe-buffer/5.2.1:
|
||||||
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
|
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
|
||||||
dev: true
|
dev: true
|
||||||
@ -1553,6 +1620,17 @@ packages:
|
|||||||
engines: {node: '>= 0.8'}
|
engines: {node: '>= 0.8'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/streamsearch/1.1.0:
|
||||||
|
resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
|
||||||
|
engines: {node: '>=10.0.0'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
|
/string_decoder/1.1.1:
|
||||||
|
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
||||||
|
dependencies:
|
||||||
|
safe-buffer: 5.1.2
|
||||||
|
dev: true
|
||||||
|
|
||||||
/string_decoder/1.3.0:
|
/string_decoder/1.3.0:
|
||||||
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
|
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -1677,6 +1755,10 @@ packages:
|
|||||||
mime-types: 2.1.35
|
mime-types: 2.1.35
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/typedarray/0.0.6:
|
||||||
|
resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/typescript/4.8.4:
|
/typescript/4.8.4:
|
||||||
resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==}
|
resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==}
|
||||||
engines: {node: '>=4.2.0'}
|
engines: {node: '>=4.2.0'}
|
||||||
@ -1758,6 +1840,11 @@ packages:
|
|||||||
optional: true
|
optional: true
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/xtend/4.0.2:
|
||||||
|
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
|
||||||
|
engines: {node: '>=0.4'}
|
||||||
|
dev: true
|
||||||
|
|
||||||
/yallist/2.1.2:
|
/yallist/2.1.2:
|
||||||
resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
|
resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
|
||||||
dev: true
|
dev: true
|
||||||
|
@ -40,7 +40,7 @@ export default {
|
|||||||
// app absolute path
|
// app absolute path
|
||||||
basedir: __dirname,
|
basedir: __dirname,
|
||||||
// path to the API handle folder
|
// path to the API handle folder
|
||||||
files: ["../router/api/*.ts"],
|
files: ["../router/*.ts"],
|
||||||
},
|
},
|
||||||
logs: {
|
logs: {
|
||||||
level: process.env.LOG_LEVEL || "silly",
|
level: process.env.LOG_LEVEL || "silly",
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
import * as mysql from "mysql2";
|
import * as fs from "fs";
|
||||||
import secret from "../config";
|
import secret from "../config";
|
||||||
|
import * as mysql from "mysql2";
|
||||||
import * as jwt from "jsonwebtoken";
|
import * as jwt from "jsonwebtoken";
|
||||||
import { createHash } from "crypto";
|
import { createHash } from "crypto";
|
||||||
import Logger from "../loaders/logger";
|
import Logger from "../loaders/logger";
|
||||||
import { Message } from "../utils/enums";
|
import { Message } from "../utils/enums";
|
||||||
import { Request, Response } from "express";
|
|
||||||
// import { createMathExpr } from "svg-captcha";
|
|
||||||
import getFormatDate from "../utils/date";
|
import getFormatDate from "../utils/date";
|
||||||
import { connection } from "../utils/mysql";
|
import { connection } from "../utils/mysql";
|
||||||
// import { formidable } from "formidable";
|
import { Request, Response } from "express";
|
||||||
// let path = require("path");
|
import { createMathExpr } from "svg-captcha";
|
||||||
|
const utils = require("@pureadmin/utils");
|
||||||
|
|
||||||
/** 保存验证码 */
|
/** 保存验证码 */
|
||||||
// let generateVerify: number;
|
let generateVerify: number;
|
||||||
|
|
||||||
/** 过期时间 单位:毫秒 默认 1分钟过期,方便演示 */
|
/** 过期时间 单位:毫秒 默认 1分钟过期,方便演示 */
|
||||||
let expiresIn = 60000;
|
let expiresIn = 60000;
|
||||||
@ -387,26 +387,56 @@ const searchVague = async (req: Request, res: Response) => {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// const upload = async (req: Request, res: Response) => {};
|
|
||||||
|
|
||||||
// /**
|
// /**
|
||||||
// * @route GET /captcha
|
// * @route POST /upload
|
||||||
// * @summary 图形验证码
|
// * @produces application/x-www-form-urlencoded
|
||||||
// * @group captcha - 图形验证码
|
// * @consumes application/x-www-form-urlencoded
|
||||||
|
// * @summary 文件上传
|
||||||
|
// * @group upload - 文件上传
|
||||||
// * @returns {object} 200
|
// * @returns {object} 200
|
||||||
// * @security JWT
|
|
||||||
// */
|
// */
|
||||||
|
|
||||||
// const captcha = async (req: Request, res: Response) => {
|
const upload = async (req: Request, res: Response) => {
|
||||||
// const create = createMathExpr({
|
// 文件存放地址
|
||||||
// mathMin: 1,
|
var des_file = "./public/images/" + req.files[0].originalname;
|
||||||
// mathMax: 4,
|
fs.readFile(req.files[0].path, function (err, data) {
|
||||||
// mathOperator: "+",
|
fs.writeFile(des_file, data, function (err) {
|
||||||
// });
|
if (err) {
|
||||||
// generateVerify = Number(create.text);
|
res.json({
|
||||||
// res.type("svg"); // 响应的类型
|
success: false,
|
||||||
// res.json({ success: true, data: { text: create.text, svg: create.data } });
|
data: { message: Message[10] },
|
||||||
// };
|
});
|
||||||
|
} else {
|
||||||
|
res.json({
|
||||||
|
success: true,
|
||||||
|
data: {
|
||||||
|
message: Message[11],
|
||||||
|
filename: req.files[0].originalname,
|
||||||
|
filepath: utils.getAbsolutePath(des_file),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @route GET /captcha
|
||||||
|
* @summary 图形验证码
|
||||||
|
* @group captcha - 图形验证码
|
||||||
|
* @returns {object} 200
|
||||||
|
*/
|
||||||
|
|
||||||
|
const captcha = async (req: Request, res: Response) => {
|
||||||
|
const create = createMathExpr({
|
||||||
|
mathMin: 1,
|
||||||
|
mathMax: 4,
|
||||||
|
mathOperator: "+",
|
||||||
|
});
|
||||||
|
generateVerify = Number(create.text);
|
||||||
|
res.type("svg"); // 响应的类型
|
||||||
|
res.json({ success: true, data: { text: create.text, svg: create.data } });
|
||||||
|
};
|
||||||
|
|
||||||
export {
|
export {
|
||||||
login,
|
login,
|
||||||
@ -415,6 +445,6 @@ export {
|
|||||||
deleteList,
|
deleteList,
|
||||||
searchPage,
|
searchPage,
|
||||||
searchVague,
|
searchVague,
|
||||||
// upload,
|
upload,
|
||||||
// captcha,
|
captcha,
|
||||||
};
|
};
|
||||||
|
@ -2,6 +2,7 @@ import app from "./app";
|
|||||||
// import * as open from "open";
|
// import * as open from "open";
|
||||||
import config from "./config";
|
import config from "./config";
|
||||||
import * as dayjs from "dayjs";
|
import * as dayjs from "dayjs";
|
||||||
|
import * as multer from "multer";
|
||||||
import { user } from "./models/mysql";
|
import { user } from "./models/mysql";
|
||||||
import Logger from "./loaders/logger";
|
import Logger from "./loaders/logger";
|
||||||
import { queryTable } from "./utils/mysql";
|
import { queryTable } from "./utils/mysql";
|
||||||
@ -17,8 +18,8 @@ import {
|
|||||||
deleteList,
|
deleteList,
|
||||||
searchPage,
|
searchPage,
|
||||||
searchVague,
|
searchVague,
|
||||||
// upload,
|
upload,
|
||||||
// captcha,
|
captcha,
|
||||||
} from "./router/http";
|
} from "./router/http";
|
||||||
|
|
||||||
app.post("/login", (req, res) => {
|
app.post("/login", (req, res) => {
|
||||||
@ -45,13 +46,15 @@ app.post("/searchVague", (req, res) => {
|
|||||||
searchVague(req, res);
|
searchVague(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// app.post("/upload", (req, res) => {
|
// 新建存放临时文件的文件夹
|
||||||
// upload(req, res);
|
const upload_tmp = multer({ dest: "upload_tmp/" });
|
||||||
// });
|
app.post("/upload", upload_tmp.any(), (req, res) => {
|
||||||
|
upload(req, res);
|
||||||
|
});
|
||||||
|
|
||||||
// app.get("/captcha", (req, res) => {
|
app.get("/captcha", (req, res) => {
|
||||||
// captcha(req, res);
|
captcha(req, res);
|
||||||
// });
|
});
|
||||||
|
|
||||||
app.ws("/socket", function (ws, req) {
|
app.ws("/socket", function (ws, req) {
|
||||||
ws.send(
|
ws.send(
|
||||||
|
@ -10,4 +10,6 @@ export enum Message {
|
|||||||
"修改成功",
|
"修改成功",
|
||||||
"删除成功",
|
"删除成功",
|
||||||
"搜索信息不能为空",
|
"搜索信息不能为空",
|
||||||
|
"文件上传失败",
|
||||||
|
"文件上传成功",
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user