hotfix(home): upload file error
Showing
13 changed files
with
42 additions
and
31 deletions
1 | 'use strict'; | 1 | 'use strict'; |
2 | 2 | ||
3 | -const request = require('request-promise'); | ||
4 | const fs = require('fs'); | 3 | const fs = require('fs'); |
5 | const _ = require('lodash'); | 4 | const _ = require('lodash'); |
6 | 5 | ||
7 | const utils = require('../models/utils'); | 6 | const utils = require('../models/utils'); |
7 | +const yohoApi = global.yoho.API; | ||
8 | + | ||
9 | +const AllowedBucket = { | ||
10 | + sns: 'sns', | ||
11 | + evidenceImages: 'evidenceImages' | ||
12 | +}; | ||
8 | 13 | ||
9 | const uploadImg = (req, res, next) => { | 14 | const uploadImg = (req, res, next) => { |
10 | let files = req.files && req.files.file || []; | 15 | let files = req.files && req.files.file || []; |
@@ -16,7 +21,6 @@ const uploadImg = (req, res, next) => { | @@ -16,7 +21,6 @@ const uploadImg = (req, res, next) => { | ||
16 | 21 | ||
17 | req.body.files = []; | 22 | req.body.files = []; |
18 | files.forEach(file => { | 23 | files.forEach(file => { |
19 | - | ||
20 | let types = file.type.split('/'); | 24 | let types = file.type.split('/'); |
21 | 25 | ||
22 | if (!types || types[0] !== 'image') { | 26 | if (!types || types[0] !== 'image') { |
@@ -27,7 +31,6 @@ const uploadImg = (req, res, next) => { | @@ -27,7 +31,6 @@ const uploadImg = (req, res, next) => { | ||
27 | errTip = '上传文件尺寸太大!'; | 31 | errTip = '上传文件尺寸太大!'; |
28 | } | 32 | } |
29 | req.body.files.push(fs.createReadStream(file.path)); | 33 | req.body.files.push(fs.createReadStream(file.path)); |
30 | - req.body.files.push(file.name); | ||
31 | }); | 34 | }); |
32 | 35 | ||
33 | if (errTip) { | 36 | if (errTip) { |
@@ -36,21 +39,28 @@ const uploadImg = (req, res, next) => { | @@ -36,21 +39,28 @@ const uploadImg = (req, res, next) => { | ||
36 | }); | 39 | }); |
37 | } | 40 | } |
38 | 41 | ||
39 | - request({ | ||
40 | - method: 'post', | ||
41 | - url: 'http://upload.static.yohobuy.com', | ||
42 | - formData: { | ||
43 | - fileData: req.body.files, | ||
44 | - project: req.body.bucket | ||
45 | - }, | ||
46 | - json: true | ||
47 | - }).then(function(result) { | 42 | + const bucket = AllowedBucket[req.body.bucket]; |
48 | 43 | ||
44 | + if (!bucket) { | ||
45 | + return res.json({ | ||
46 | + code: 400, | ||
47 | + message: '参数错误' | ||
48 | + }); | ||
49 | + } | ||
50 | + | ||
51 | + yohoApi.postFile('', { | ||
52 | + bucket: req.body.bucket, | ||
53 | + file: req.body.files[0], | ||
54 | + uid: req.user.uid.toString(), | ||
55 | + method: 'yoho.fileupload' | ||
56 | + }).then(function(result) { | ||
49 | if (result && result.code === 200) { | 57 | if (result && result.code === 200) { |
50 | - result.data = result.data || {}; | ||
51 | - result.data.images = _.map(_.get(result, 'data.imagesList'), (it) => { | ||
52 | - return utils.getUploadImgAbsoluteUrl(it, req.body.bucket); | ||
53 | - }); | 58 | + const images = [utils.getUploadImgAbsoluteUrl(_.get(result, 'data'), req.body.bucket)]; |
59 | + | ||
60 | + result.data = { | ||
61 | + images, | ||
62 | + imagesList: images | ||
63 | + }; | ||
54 | } | 64 | } |
55 | 65 | ||
56 | res.json(result); | 66 | res.json(result); |
@@ -88,7 +88,7 @@ module.exports = { | @@ -88,7 +88,7 @@ module.exports = { | ||
88 | infoFile: { | 88 | infoFile: { |
89 | name: 'info', | 89 | name: 'info', |
90 | level: 'info', | 90 | level: 'info', |
91 | - filename: '/Data/logs/yohobuy-node/info/info.log', | 91 | + filename: './Data/logs/yohobuy-node/info/info.log', |
92 | maxFiles: 1, | 92 | maxFiles: 1, |
93 | tailable: true, | 93 | tailable: true, |
94 | maxsize: Math.pow(1024, 3), | 94 | maxsize: Math.pow(1024, 3), |
@@ -100,7 +100,7 @@ module.exports = { | @@ -100,7 +100,7 @@ module.exports = { | ||
100 | errorFile: { | 100 | errorFile: { |
101 | name: 'error', | 101 | name: 'error', |
102 | level: 'error', | 102 | level: 'error', |
103 | - filename: '/Data/logs/yohobuy-node/error/error.log', | 103 | + filename: './Data/logs/yohobuy-node/error/error.log', |
104 | maxFiles: 1, | 104 | maxFiles: 1, |
105 | tailable: true, | 105 | tailable: true, |
106 | maxsize: Math.pow(1024, 3), | 106 | maxsize: Math.pow(1024, 3), |
@@ -57,10 +57,10 @@ | @@ -57,10 +57,10 @@ | ||
57 | "sitemap": "^1.12.1", | 57 | "sitemap": "^1.12.1", |
58 | "urlencode": "^1.1.0", | 58 | "urlencode": "^1.1.0", |
59 | "uuid": "^2.0.2", | 59 | "uuid": "^2.0.2", |
60 | + "yo-cli": "=2.1.13", | ||
60 | "yoho-express-session": "^2.0.0", | 61 | "yoho-express-session": "^2.0.0", |
61 | - "yoho-node-lib": "=0.6.40", | ||
62 | - "yoho-zookeeper": "^1.0.10", | ||
63 | - "yo-cli": "=1.0.7" | 62 | + "yoho-node-lib": "^0.6.46", |
63 | + "yoho-zookeeper": "^1.0.10" | ||
64 | }, | 64 | }, |
65 | "devDependencies": { | 65 | "devDependencies": { |
66 | "autoprefixer": "^8.3.0", | 66 | "autoprefixer": "^8.3.0", |
@@ -103,8 +103,6 @@ | @@ -103,8 +103,6 @@ | ||
103 | "stylelint": "^9.2.0", | 103 | "stylelint": "^9.2.0", |
104 | "stylelint-config-yoho": "1.3.0", | 104 | "stylelint-config-yoho": "1.3.0", |
105 | "stylelint-formatter-table": "^1.0.3", | 105 | "stylelint-formatter-table": "^1.0.3", |
106 | - "webpack": "^4.6.0", | ||
107 | - "webpack-cli": "^2.0.15", | ||
108 | "webpack-dev-server": "^3.1.4", | 106 | "webpack-dev-server": "^3.1.4", |
109 | "yoho-eventproxy": "^0.3.6", | 107 | "yoho-eventproxy": "^0.3.6", |
110 | "yoho-handlebars": "^4.0.6", | 108 | "yoho-handlebars": "^4.0.6", |
1 | @charset "utf-8"; | 1 | @charset "utf-8"; |
2 | 2 | ||
3 | /* 公共 */ | 3 | /* 公共 */ |
4 | +@import "variables"; | ||
4 | @import "common/index"; | 5 | @import "common/index"; |
5 | @import "plugin/index"; | 6 | @import "plugin/index"; |
6 | @import "common/dialog"; | 7 | @import "common/dialog"; |
7 | @import "pager"; | 8 | @import "pager"; |
8 | @import "path-nav"; | 9 | @import "path-nav"; |
9 | @import "share"; | 10 | @import "share"; |
10 | -@import "variables"; | ||
11 | - |
1 | +@import "../variables"; | ||
1 | @import "base"; | 2 | @import "base"; |
2 | @import "default"; | 3 | @import "default"; |
3 | @import "order-block"; | 4 | @import "order-block"; |
@@ -19,7 +20,6 @@ | @@ -19,7 +20,6 @@ | ||
19 | @import "coupons"; | 20 | @import "coupons"; |
20 | @import "favorite"; | 21 | @import "favorite"; |
21 | @import "user-info"; | 22 | @import "user-info"; |
22 | -@import "../variables"; | ||
23 | @import "returns-detail"; | 23 | @import "returns-detail"; |
24 | @import "returns-save"; | 24 | @import "returns-save"; |
25 | @import "me-gift"; | 25 | @import "me-gift"; |
1 | +@import "../variables"; | ||
1 | @import "base"; | 2 | @import "base"; |
2 | @import "login"; | 3 | @import "login"; |
3 | @import "register"; | 4 | @import "register"; |
@@ -6,4 +7,3 @@ | @@ -6,4 +7,3 @@ | ||
6 | @import "relate"; | 7 | @import "relate"; |
7 | @import "third"; | 8 | @import "third"; |
8 | @import "_bind-tip.css"; | 9 | @import "_bind-tip.css"; |
9 | -@import "../variables"; |
1 | +@import "../variables"; | ||
1 | @import "search"; | 2 | @import "search"; |
2 | @import "filter-box"; | 3 | @import "filter-box"; |
3 | @import "sort-pager"; | 4 | @import "sort-pager"; |
@@ -15,7 +16,6 @@ | @@ -15,7 +16,6 @@ | ||
15 | @import "top-coupon"; | 16 | @import "top-coupon"; |
16 | @import "new-arrive"; | 17 | @import "new-arrive"; |
17 | @import "good-slide"; | 18 | @import "good-slide"; |
18 | -@import "../variables"; | ||
19 | @import "seo/index"; | 19 | @import "seo/index"; |
20 | 20 | ||
21 | .product-page { | 21 | .product-page { |
This diff could not be displayed because it is too large.
-
Please register or login to post a comment