From 832b8f2f53d05f8a22d3bd016ffa4b764d906372 Mon Sep 17 00:00:00 2001 From: chaosBreaking Date: Thu, 10 Oct 2019 15:44:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 + src/modules/user/user.controller.js | 14 ++++++++++++++ src/modules/user/user.service.js | 5 +++++ src/utils/form.js | 15 +++++++++++++++ 4 files changed, 35 insertions(+) create mode 100644 src/utils/form.js diff --git a/package.json b/package.json index 605f79d..08772c5 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "ethers": "^4.0.36", "etherscan-api": "^10.0.4", "express": "^4.17.1", + "formidable": "^1.2.1", "helmet": "^3.21.1", "js-sha3": "^0.8.0", "jsonwebtoken": "^8.5.1", diff --git a/src/modules/user/user.controller.js b/src/modules/user/user.controller.js index d1a5d21..07225a5 100644 --- a/src/modules/user/user.controller.js +++ b/src/modules/user/user.controller.js @@ -3,6 +3,7 @@ const Fund = require('../fund/fund.model'); const MsgCode = require('../msgCode/msgCode.controller'); const changePwd = require('../sign/sign.controller').changePasswd; const Crypto = require('../../utils/crypto'); +const { parseForm } = require('../../utils/form'); module.exports = { changePwd, @@ -142,5 +143,18 @@ module.exports = { code: 0, data: list }); + }, + async verify (req, res) { + const { userId } = res.locals.user; + const form = await parseForm(req, { + uploadDir: `./userImages/${userId}`, + maxFileSize: 20 * 1024 * 1024, // 限制文件体积最大20m + keepExtensions: true, + encoding: 'utf-8' + }); + console.log(form); + return res.json({ + code: 0 + }); } }; \ No newline at end of file diff --git a/src/modules/user/user.service.js b/src/modules/user/user.service.js index 963f2db..901f022 100644 --- a/src/modules/user/user.service.js +++ b/src/modules/user/user.service.js @@ -48,6 +48,11 @@ const services = [ method: 'GET', controller: controller.getGroupList }, + { + url: '/verify', + method: 'POST', + controller: controller.verify + }, ]; module.exports = services.map(service => { diff --git a/src/utils/form.js b/src/utils/form.js new file mode 100644 index 0000000..35e9e64 --- /dev/null +++ b/src/utils/form.js @@ -0,0 +1,15 @@ +const formidable = require('formidable'); + +module.exports = { + async parseForm (req, config) { + if (!req) return null; + const form = new formidable.IncomingForm(); + Object.assign(form, config); + return new Promise((resolve, reject) => { + form.parse(req, function (err, fields, data) { + if (err) return reject(err); + else return resolve({ fields, data }); + }); + }); + } +}; \ No newline at end of file