Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
yoho-blk
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
0
Merge Requests
1
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Email Patches
Plain Diff
Browse Files
Authored by
jinhu.tung
9 years ago
Commit
0078e73ce0800876f8a4a1b704c42f25ed5b3584
1 parent
5e397519
add upload image api
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
37 additions
and
47 deletions
dispatch.js
apps/api/index.js → doraemon/api/index.js
apps/api/router.js → doraemon/api/router.js
apps/api/controllers/api.js → doraemon/api/upload/upload.js
doraemon/router.js
package.json
dispatch.js
View file @
0078e73
...
...
@@ -18,5 +18,5 @@ module.exports = app => {
app
.
use
(
'/editorial'
,
require
(
'./apps/editorial'
));
// 资讯
app
.
use
(
'/product'
,
require
(
'./apps/product'
));
app
.
use
(
'/brand'
,
require
(
'./apps/brand'
));
// 品牌
app
.
use
(
'/api'
,
require
(
'./
apps
/api'
));
// API
app
.
use
(
'/api'
,
require
(
'./
doraemon
/api'
));
// API
};
...
...
apps
/api/index.js →
doraemon
/api/index.js
View file @
0078e73
/**
* sub app
api
* sub app
shopping
* @author: jinhu.dong<jinhu.dong@yoho.cn>
* @date: 2016/07/
21
* @date: 2016/07/
04
*/
var
express
=
require
(
'express'
),
path
=
require
(
'path'
),
hbs
=
require
(
'express-handlebars'
);
var
express
=
require
(
'express'
);
var
app
=
express
();
// set view engin
var
doraemon
=
path
.
join
(
__dirname
,
'../../doraemon/views'
);
// parent view root
app
.
on
(
'mount'
,
function
(
parent
)
{
delete
parent
.
locals
.
settings
;
// 不继承父 App 的设置
Object
.
assign
(
app
.
locals
,
parent
.
locals
);
});
app
.
set
(
'views'
,
path
.
join
(
__dirname
,
'views/action'
));
app
.
engine
(
'.hbs'
,
hbs
({
extname
:
'.hbs'
,
defaultLayout
:
'layout'
,
layoutsDir
:
doraemon
,
partialsDir
:
[
'./views/partial'
,
`
$
{
doraemon
}
/partial`]
,
helpers
:
'helpers'
}));
console
.
log
(
'api.............'
);
// router
app
.
use
(
require
(
'./router'
));
...
...
apps
/api/router.js →
doraemon
/api/router.js
View file @
0078e73
/**
* router of sub app
api
* router of sub app
shopping
* @author: jinhu.dong<jinhu.dong@yoho.cn>
* @date: 2016/07/
21
* @date: 2016/07/
04
*/
'use strict'
;
const
router
=
require
(
'express'
).
Router
();
// eslint-disable-line
const
cRoot
=
'./controllers'
;
const
apiCtrl
=
require
(
`
$
{
cRoot
}
/api`
)
;
const
uploadApi
=
require
(
'./upload/upload.js'
);
router
.
post
(
'/uploadImg'
,
apiCtrl
.
uploadImg
);
router
.
post
(
'/uploadImg'
,
uploadApi
.
uploadImg
);
module
.
exports
=
router
;
...
...
apps/api/controllers/api
.js →
doraemon/api/upload/upload
.js
View file @
0078e73
/**
* 公共接口
controller
* 公共接口
* @author: jinhu.dong<jinhu.dong@yoho.cn>
* @date: 2016/07/21
*/
'use strict'
;
var
request
Promise
=
require
(
'request-promise
'
);
var
request
=
require
(
'request
'
);
var
fs
=
require
(
'fs'
);
const
uploadImg
=
(
req
,
res
)
=>
{
console
.
log
(
'-----uploadImg:'
);
const
getImgHost
=
function
(
url
)
{
let
urlArr
=
url
.
split
(
'/'
),
domain
=
'static.yhbimg.com/goodsimg'
,
num
=
urlArr
[
urlArr
.
length
-
1
].
substr
(
1
,
1
),
url1
=
domain
+
url
;
if
(
num
===
1
)
{
return
'http://img11.'
+
url1
;
}
else
{
return
'http://img12.'
+
url1
;
}
};
const
uploadImg
=
(
req
,
res
)
=>
{
let
files
,
fileIndex
;
let
ret
,
imgs
,
datas
;
let
imgs
,
datas
;
let
flag
;
let
i
=
0
;
if
(
req
.
user
.
uid
)
{
console
.
log
(
'req.files...'
,
JSON
.
stringify
(
req
.
files
));
console
.
log
(
'req.body.bucket:'
,
req
.
body
.
bucket
);
files
=
[
req
.
files
.
filename
];
// 判断是单张传还是多张传
flag
=
Object
.
prototype
.
toString
.
call
(
files
)
===
'[object Array]'
;
console
.
log
(
'files...'
,
files
);
// 如果是单张,则数组化
if
(
!
flag
)
{
files
=
[
req
.
files
.
filename
];
}
console
.
log
(
'upload files....'
,
files
);
req
.
body
.
files
=
[];
req
.
body
.
fileNames
=
[];
...
...
@@ -41,25 +47,22 @@ const uploadImg = (req, res) => {
req
.
body
.
fileNames
[
fileIndex
]
=
files
[
fileIndex
].
name
;
}
console
.
log
(
'upload files path:'
,
JSON
.
stringify
(
req
.
body
.
files
));
console
.
log
(
'upload files names:'
,
JSON
.
stringify
(
req
.
body
.
fileNames
));
if
(
req
.
body
.
bucket
===
'goodsimg'
)
{
request
Promise
({
request
.
post
({
url
:
'http://upload.static.yohobuy.com'
,
method
:
'POST'
,
body
:
{
formData
:
{
fileData
:
req
.
body
.
files
,
project
:
req
.
body
.
bucket
}
}).
then
((
error
,
httpResponse
,
rebody
)
=>
{
},
json
:
true
},
function
(
error
,
httpResponse
,
rebody
)
{
if
(
!
error
&&
httpResponse
.
statusCode
===
200
)
{
ret
=
JSON
.
parse
(
rebody
);
imgs
=
ret
.
data
.
imagesList
||
[];
imgs
=
rebody
.
data
.
imagesList
||
[];
datas
=
[];
// 生成图片绝对地址
for
(
i
=
0
;
i
<
imgs
.
length
;
i
++
)
{
// datas.push(Utils.joinImg
(imgs[i]));
datas
.
push
(
getImgHost
(
imgs
[
i
]));
}
}
...
...
doraemon/router.js
View file @
0078e73
...
...
@@ -7,8 +7,11 @@
'use strict'
;
const
router
=
require
(
'express'
).
Router
();
// eslint-disable-line
const
cRoot
=
'./controllers'
;
// const cRoot = './controllers';
const
apiCtrl
=
require
(
`
$
{
cRoot
}
/api`
)
;
router
.
post
(
'/uploadImg'
,
apiCtrl
.
uploadImg
);
module
.
exports
=
router
;
...
...
package.json
View file @
0078e73
...
...
@@ -55,6 +55,7 @@
"passport-sina"
:
"^0.1.0"
,
"passport-strategy"
:
"1.x.x"
,
"passport-weixin"
:
"^0.1.0"
,
"request"
:
"^2.73.0"
,
"request-promise"
:
"^3.0.0"
,
"serve-favicon"
:
"^2.3.0"
,
"uuid"
:
"^2.0.2"
,
...
...
Please
register
or
login
to post a comment