Toggle navigation
Toggle navigation
This project
Loading...
Sign in
fe
/
yohobuy-node
·
Commits
Go to a project
GitLab
Go to group
Project
Activity
Files
Commits
Pipelines
0
Builds
0
Graphs
Milestones
Issues
1
Merge Requests
0
Members
Labels
Wiki
Forks
Network
Create a new issue
Download as
Plain Diff
Browse Files
Authored by
陈峰
7 years ago
Commit
d27f1a74a1ac9d9d4a645d639e315cadc6e4c4ab
2 parents
002ad659
688296e3
Merge branch 'gray' into 'master'
Gray See merge request
!192
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
81 additions
and
14 deletions
app.js
apps/3party/controllers/sitemap.js
apps/product/models/list-handler.js
config/common.js
doraemon/middleware/error-handler.js
doraemon/middleware/route-encode.js
doraemon/views/layout.hbs
package.json
app.js
View file @
d27f1a7
...
...
@@ -139,6 +139,7 @@ try {
const
layoutTools
=
require
(
'./doraemon/middleware/layout-tools'
);
const
pageCache
=
require
(
'./doraemon/middleware/page-cache'
);
const
devtool
=
require
(
'./doraemon/middleware/devtools'
);
const
routeEncode
=
require
(
'./doraemon/middleware/route-encode'
);
// YOHO 前置中间件
app
.
use
(
setYohoData
());
...
...
@@ -157,6 +158,7 @@ try {
app
.
use
(
setPageInfo
());
app
.
use
(
layoutTools
());
app
.
use
(
pageCache
());
app
.
use
(
routeEncode
.
md
);
if
(
app
.
locals
.
devEnv
)
{
app
.
use
(
devtool
());
...
...
apps/3party/controllers/sitemap.js
View file @
d27f1a7
...
...
@@ -135,7 +135,7 @@ const siteMap = (req, res, next) => {
let
siteList
=
[
'www'
,
'list'
,
'item'
],
subdomain
=
req
.
subdomains
[
0
]
||
'www'
;
if
(
_
.
find
(
siteList
,
subdomain
)
)
{
if
(
_
.
indexOf
(
siteList
,
subdomain
)
===
-
1
)
{
res
.
end
(
'end'
);
return
;
}
...
...
apps/product/models/list-handler.js
View file @
d27f1a7
...
...
@@ -237,7 +237,7 @@ class FilterTools {
condition
.
name
=
sizeFind
.
size_name
;
}
}
else
if
(
k
===
'age_level'
)
{
if
(
filter
.
ageLevel
.
length
>
1
)
{
if
(
filter
.
ageLevel
)
{
const
ageFind
=
_
.
find
(
filter
.
ageLevel
,
c
=>
+
c
.
id
===
_
.
parseInt
(
params
.
age_level
));
if
(
ageFind
)
{
...
...
@@ -449,18 +449,33 @@ class FilterTools {
let
{
baseUrl
,
origin
,
params
}
=
this
;
const
standards
=
_
.
get
(
origin
,
'standard'
,
{});
const
filterStandars
=
[];
const
standarParam
=
params
.
standard
||
''
;
const
href
=
handleFilterUrl
(
baseUrl
,
params
,
{
standard
:
'${standard}'
});
let
standarParam
=
{};
_
.
each
(
_
.
split
(
params
.
standard
||
''
,
','
),
item
=>
{
const
sps
=
_
.
split
(
item
,
'_'
);
if
(
sps
.
length
===
2
)
{
standarParam
[
sps
[
0
]]
=
sps
[
1
];
}
});
_
.
each
(
standards
,
standard
=>
{
if
(
standard
.
sub
.
length
>
1
)
{
filterStandars
.
push
({
name
:
standard
.
standard_name
,
sub
:
_
.
map
(
standard
.
sub
,
sub
=>
{
const
standarParamItem
=
Object
.
assign
({},
standarParam
,
{
[
standard
.
standard_id
]:
sub
.
standard_id
});
const
standarParamStr
=
_
.
join
(
_
.
map
(
standarParamItem
,
(
v
,
k
)
=>
{
return
`
$
{
k
}
_$
{
v
}
`
;
}),
','
);
return
{
name
:
sub
.
standard_name
,
href
:
href
.
replace
(
'${standard}'
,
`
$
{
standarParam
}
$
{
standarParam
&&
','
}
$
{
standard
.
standard_id
}
_$
{
sub
.
standard_id
}
`
),
href
:
href
.
replace
(
'${standard}'
,
standarParamStr
),
checked
:
_
.
parseInt
(
sub
.
standard_id
)
===
_
.
parseInt
(
standarParam
[
standard
.
standard_id
]),
id
:
sub
.
standard_id
};
})
...
...
config/common.js
View file @
d27f1a7
...
...
@@ -14,6 +14,7 @@ require('http').globalAgent.maxSockets = 10;
module
.
exports
=
{
app
:
'web'
,
appName
:
'yohobuy-node'
,
appVersion
:
'5.8.0'
,
// 调用api的版本
port
:
6002
,
siteUrl
:
'http://www.yohobuy.com'
,
...
...
@@ -72,8 +73,8 @@ module.exports = {
index
:
'//yohobuy.com'
},
report
:
{
host
:
'10.66.0.139'
,
port
:
8086
,
host
:
'localhost'
,
port
:
6009
,
db
:
'web-apm'
},
useOneapm
:
false
,
...
...
@@ -187,7 +188,7 @@ module.exports = {
if
(
isProduction
)
{
Object
.
assign
(
module
.
exports
,
{
appName
:
'
www.yohobuy.com
'
,
appName
:
'
yohobuy-node
'
,
domains
:
{
singleApi
:
'http://single.yoho.cn/'
,
api
:
'http://api.yoho.yohoops.org/'
,
...
...
@@ -241,14 +242,14 @@ if (isProduction) {
}
},
report
:
{
host
:
'influxdblog.web.yohoops.org'
,
port
:
8086
,
host
:
'badjs.yoho.cn'
,
port
:
80
,
db
:
'web-apm'
}
});
}
else
if
(
isTest
)
{
Object
.
assign
(
module
.
exports
,
{
appName
:
'
www.yohobuy.com for test
'
,
appName
:
'
yohobuy-node
'
,
domains
:
{
singleApi
:
process
.
env
.
TEST_API
||
'http://192.168.102.31:8092/brower'
,
api
:
process
.
env
.
TEST_API
||
'http://testapi.yoho.cn:28078/'
,
...
...
doraemon/middleware/error-handler.js
View file @
d27f1a7
...
...
@@ -7,6 +7,7 @@ const logger = global.yoho.logger;
const
helpers
=
global
.
yoho
.
helpers
;
const
sender
=
global
.
yoho
.
apmSender
;
const
hostname
=
require
(
'os'
).
hostname
();
const
routeEncode
=
require
(
'./route-encode'
);
const
forceNoCache
=
(
res
)
=>
{
if
(
res
)
{
...
...
@@ -64,7 +65,8 @@ exports.serverError = () => {
reqID
:
req
.
reqID
,
uid
,
udid
,
code
:
err
.
code
||
500
code
:
err
.
code
||
500
,
path
:
`
[
$
{
req
.
method
}]
$
{
routeEncode
.
getRouter
(
req
)}
`
},
fields
:
{
message
:
err
.
message
,
...
...
doraemon/middleware/route-encode.js
0 → 100644
View file @
d27f1a7
const
_
=
require
(
'lodash'
);
const
crypto
=
global
.
yoho
.
crypto
;
function
urlJoin
(
a
,
b
)
{
if
(
_
.
endsWith
(
a
,
'/'
)
&&
_
.
startsWith
(
b
,
'/'
))
{
return
a
+
b
.
substring
(
1
,
b
.
length
);
}
else
if
(
!
_
.
endsWith
(
a
,
'/'
)
&&
!
_
.
startsWith
(
b
,
'/'
))
{
return
a
+
'/'
+
b
;
}
else
{
return
a
+
b
;
}
}
function
_encode
(
str
)
{
return
encodeURIComponent
(
crypto
.
encryption
(
null
,
str
));
}
const
encode
=
_
.
memoize
(
_encode
);
function
getRouter
(
req
)
{
let
route
=
req
.
route
?
req
.
route
.
path
:
''
;
let
appPath
=
req
.
app
.
mountpath
;
if
(
_
.
isArray
(
route
)
&&
route
.
length
>
0
)
{
route
=
route
[
0
];
}
let
key
=
urlJoin
(
appPath
,
route
.
toString
());
// route may be a regexp
if
(
key
)
{
return
encode
(
key
);
}
return
''
;
}
module
.
exports
.
md
=
function
(
req
,
res
,
next
)
{
function
onRender
()
{
res
.
locals
.
_router
=
getRouter
(
req
);
}
res
.
on
(
'beforeRender'
,
onRender
);
next
();
};
module
.
exports
.
getRouter
=
getRouter
;
...
...
doraemon/views/layout.hbs
View file @
d27f1a7
...
...
@@ -26,8 +26,9 @@
window._timeStart = Date.now();
{{#
ifand
isProduction
pc
.
open
.
bughd
}}
window._yohoAppName = 'yohobuy-node';
window._router = '
{{
_router
}}
';
!function(e){function t(n){if(r[n])return r[n].exports;var
o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")});var n=r(13),o=r(14);n.init(),o.init()},function(e,t){e.exports=function(e,t,r){if("undefined"==typeof t){var n=null;if(document.cookie)for(var o=document.cookie.split(";"),i=0;i<o.length;i++){var a=(o[i]||"").trim();if(a.substring(0,e.length+1)==e+"="){n=decodeURIComponent(a.substring(e.length+1));break}}return n}r=r||{},null===t&&(t="",r.expires=-1);var d="";if(r.expires&&("number"==typeof r.expires||r.expires.toUTCString)){var u;"number"==typeof r.expires?(u=new Date,u.setTime(u.getTime()+24*r.expires*60*60*1e3)):u=r.expires,d="; expires="+u.toUTCString()}var s=r.path?"; path="+r.path:"",p=r.domain?"; domain="+r.domain:"",c=r.secure?"; secure":"";document.cookie=[e,"=",encodeURIComponent(t),d,s,p,c].join("")}},,function(e,t,r){var n=r(1),o=window._yohoAppName||"unknown",i={config:{reportUrl:"//badjs.yoho.cn/apm/yas.gif"},stringify:function(e){for(var t=[],r=0;r<e.length;r++){var n=e[r],o=[];for(var i in n)n.hasOwnProperty(i)&&o.push(i+"::"+n[i]);t.push(o.join("$$"))}return t.join("**")},report:function(e,t){if(e){var r=new Image;r.src=this.config.reportUrl+"?s="+o+"&l="+e+"&t="+(new Date).getTime(),t&&t()}},getUdid:function(){var e=(n("yohobuy_session")||"").slice(2).split(".")[0];return e||0},getUid:function(){var e=(n("_UID")||"").split("::")[1];return e||0},getReqId:function(){return n("docreqid")||0}};e.exports=i},,,,,,,,,,function(e,t,r){var n=r(1),o=r(3),i="_errLog",a={writeError:function(e,t,r,a,d){var u=JSON.parse(n(i)||"[]");u.push({tp:"err",msg:e,sc:t,ln:r,cn:a,pt:encodeURIComponent(location.href),u:o.getUid(),ud:o.getUdid(),rid:o.getReqId(),st:JSON.stringify(d&&d.stack)}),n(i,JSON.stringify(u)),u.length>=5&&this.reportError()},clearError:function(){n(i,"[]")},reportError:function(){var e=this,t=JSON.parse(n(i)||"[]"),r=o.stringify(t);o.report(r,function(){e.clearError()})},init:function(){var e=this;window.onerror=function(t,r,n,o,i){e.writeError(t,r,n,o,i)},this.reportError()}};e.exports=a},function(e,t,r){function n(e){var t=e.offsetTop;return null!==e.offsetParent&&(t+=n(e.offsetParent)),t}var o=r(3),i=window.screen.height,a=[],d=!1,u=!1,s=0,p=setInterval(function(){var e,t;if(d){if(a.length)for(e=0;e<a.length;e++){if(t=a[e],!t.complete){u=!1;break}u=!0}else u=!0;u&&(s=(new Date).getTime()-_timeStart,clearInterval(p))}else{var r=document.body&&document.body.querySelectorAll("img")||[];for(e=0;e<r.length;e++){t=r[e];var o=n(t);if(o>i){d=!0;break}o<=i&&!t.hasPushed&&(t.hasPushed=1,a.push(t))}}},0),c={reportTime:function(e){var t=o.stringify(e);o.report(t)},addEvent:function(){var e=this,t=[],r=encodeURIComponent(location.href),n=o.getUid(),i=o.getUdid(),a=o.getReqId(),c=window.performance&&window.performance.timing.navigationStart||0;_timeStart=window._timeStart||0,document.addEventListener&&document.addEventListener("DOMContentLoaded",function(e){t.push({tp:"dcl",t:(new Date).getTime()-_timeStart,pt:r,u:n,ud:i,rid:a});var o=document.body&&document.body.querySelectorAll("img")||[];o.length||(d=!0)},!1),window.addEventListener&&window.addEventListener("load",function(o){t.push({tp:"ld",t:(new Date).getTime()-_timeStart,pt:r,u:n,ud:i,rid:a}),u=!0,d=!0,p&&clearInterval(p),s&&t.push({tp:"fs",t:s,pt:r,u:n,ud:i,rid:a}),t.push({tp:"pf",dcl:(window.performance&&window.performance.timing.domComplete||0)-c,ld:(window.performance&&window.performance.timing.loadEventStart||0)-c,pt:r,u:n,ud:i,rid:a
}),e.reportTime(t)},!1)},init:function(){this.addEvent()}};e.exports=c}]);
!function(e){function t(n){if(r[n])return r[n].exports;var
i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var r={};t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")});var n=r(13),i=r(14);n.init(),i.init()},function(e,t){e.exports=function(e,t,r){if(void 0===t){var n=null;if(document.cookie)for(var i=document.cookie.split(";"),o=0;o<i.length;o++){var a=(i[o]||"").trim();if(a.substring(0,e.length+1)==e+"="){n=decodeURIComponent(a.substring(e.length+1));break}}return n}r=r||{},null===t&&(t="",r.expires=-1);var d="";if(r.expires&&("number"==typeof r.expires||r.expires.toUTCString)){var u;"number"==typeof r.expires?(u=new Date,u.setTime(u.getTime()+24*r.expires*60*60*1e3)):u=r.expires,d="; expires="+u.toUTCString()}var s=r.path?"; path="+r.path:"",p=r.domain?"; domain="+r.domain:"",c=r.secure?"; secure":"";document.cookie=[e,"=",encodeURIComponent(t),d,s,p,c].join("")}},,function(e,t,r){var n=r(1),i=window._yohoAppName||"unknown",o={config:{reportUrl:"//badjs.yoho.cn/apm/yas2.gif"},stringify:function(e){for(var t=[],r=0;r<e.length;r++){var n=e[r],i=[];for(var o in n)n.hasOwnProperty(o)&&i.push(o+"::"+n[o]);t.push(i.join("$$"))}return t.join("**")},report:function(e,t){if(e){(new Image).src=this.config.reportUrl+"?s="+i+"&l="+e+"&t="+(new Date).getTime(),t&&t()}},getUdid:function(){return(n("yohobuy_session")||"").slice(2).split(".")[0]||0},getUid:function(){return(n("_UID")||"").split("::")[1]||0},getReqId:function(){return n("docreqid")||0},getRoute:function(){return window._router||""}};e.exports=o},,,,,,,,,,function(e,t,r){var n=r(1),i=r(3),o="_errLog",a={writeError:function(e,t,r,a,d){var u=JSON.parse(n(o)||"[]");u.push({tp:"err",msg:e,sc:t,ln:r,cn:a,pt:location.href,u:i.getUid(),ud:i.getUdid(),rid:i.getReqId(),st:JSON.stringify(d&&d.stack),r:i.getRoute()}),n(o,JSON.stringify(u)),u.length>=5&&this.reportError()},clearError:function(){n(o,"[]")},reportError:function(){var e=this,t=JSON.parse(n(o)||"[]"),r=i.stringify(t);i.report(r,function(){e.clearError()})},init:function(){var e=this;window.onerror=function(t,r,n,i,o){e.writeError(t,r,n,i,o)},this.reportError()}};e.exports=a},function(e,t,r){function n(e){var t=e.offsetTop;return null!==e.offsetParent&&(t+=n(e.offsetParent)),t}var i=r(3),o=window.screen.height,a=[],d=!1,u=!1,s=0,p=setInterval(function(){var e,t;if(d){if(a.length)for(e=0;e<a.length;e++){if(t=a[e],!t.complete){u=!1;break}u=!0}else u=!0;u&&(s=(new Date).getTime()-_timeStart,clearInterval(p))}else{var r=document.body&&document.body.querySelectorAll("img")||[];for(e=0;e<r.length;e++){t=r[e];var i=n(t);if(i>o){d=!0;break}i<=o&&!t.hasPushed&&(t.hasPushed=1,a.push(t))}}},0),c={reportTime:function(e){var t=i.stringify(e);i.report(t)},addEvent:function(){var e=this,t=[],r=location.href,n=i.getUid(),o=i.getUdid(),a=i.getReqId(),c=window.performance&&window.performance.timing.navigationStart||0,f=i.getRoute();_timeStart=window._timeStart||0,document.addEventListener&&document.addEventListener("DOMContentLoaded",function(e){t.push({tp:"dcl",t:(new Date).getTime()-_timeStart,pt:r,u:n,ud:o,rid:a,r:f}),(document.body&&document.body.querySelectorAll("img")||[]).length||(d=!0)},!1),window.addEventListener&&window.addEventListener("load",function(i){t.push({tp:"ld",t:(new Date).getTime()-_timeStart,pt:r,u:n,ud:o,rid:a,r:f}),u=!0,d=!0,p&&clearInterval(p),s&&t.push({tp:"fs",t:s,pt:r,u:n,ud:o,rid:a,r:f}),t.push({tp:"pf",dcl:(window.performance&&window.performance.timing.domComplete||0)-c,ld:(window.performance&&window.performance.timing.loadEventStart||0)-c,pt:r,u:n,ud:o,rid:a,r:f
}),e.reportTime(t)},!1)},init:function(){this.addEvent()}};e.exports=c}]);
{{/
ifand
}}
</script>
...
...
package.json
View file @
d27f1a7
...
...
@@ -57,7 +57,7 @@
"urlencode"
:
"^1.1.0"
,
"uuid"
:
"^2.0.2"
,
"yoho-express-session"
:
"^2.0.0"
,
"yoho-node-lib"
:
"=0.5.2
1
"
,
"yoho-node-lib"
:
"=0.5.2
9
"
,
"yoho-zookeeper"
:
"^1.0.8"
},
"devDependencies"
:
{
...
...
Please
register
or
login
to post a comment