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
陈峰
8 years ago
Commit
e9ffba8266adaaa0464cea84e1dc1a9c87c79384
1 parent
155e24bb
membercache
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
65 additions
and
10 deletions
app.js
package.json
app.js
View file @
e9ffba8
...
...
@@ -12,13 +12,16 @@ if (config.useOneapm) {
require
(
'oneapm'
);
}
const
_
=
require
(
'lodash'
);
const
express
=
require
(
'express'
);
const
path
=
require
(
'path'
);
const
uuid
=
require
(
'uuid'
);
const
bodyParser
=
require
(
'body-parser'
);
const
cookieParser
=
require
(
'cookie-parser'
);
const
favicon
=
require
(
'serve-favicon'
);
const
session
=
require
(
'client-sessions'
);
const
CookieSession
=
require
(
'client-sessions'
);
const
MemcachedSession
=
require
(
'yoho-express-session'
);
const
memcached
=
require
(
'connect-memcached'
);
const
MemcachedStore
=
memcached
(
MemcachedSession
);
const
hbs
=
require
(
'express-handlebars'
);
const
multer
=
require
(
'connect-multiparty'
);
const
pkg
=
require
(
'./package.json'
);
...
...
@@ -54,21 +57,71 @@ app.use(bodyParser.urlencoded({extended: true}));
app
.
use
(
cookieParser
());
app
.
use
(
multer
());
app
.
use
(
session
({
requestKey
:
'session'
,
app
.
use
(
MemcachedSession
({
// eslint-disable-line
proxy
:
true
,
resave
:
false
,
saveUninitialized
:
true
,
unset
:
'destroy'
,
secret
:
'82dd7e724f2c6870472c89dfa43cf48d'
,
name
:
'yohoblk-session'
,
cookie
:
{
domain
:
'yohoblk.com'
,
httpOnly
:
false
},
store
:
new
MemcachedStore
({
hosts
:
config
.
memcache
.
session
,
prefix
:
'yohoblk-session:'
,
reconnect
:
5000
,
timeout
:
1000
,
retries
:
0
})
}));
app
.
use
(
CookieSession
({
// eslint-disable-line
requestKey
:
'session2'
,
cookieName
:
'yohoblk-session'
,
secret
:
'82dd7e724f2c6870472c89dfa43cf48d'
,
domain
:
config
.
cookieDomain
cookie
:
{
domain
:
config
.
cookieDomain
,
ephemeral
:
true
}
}));
app
.
use
((
req
,
res
,
next
)
=>
{
if
(
req
.
session
)
{
let
sessionKeys
=
Object
.
keys
(
req
.
session
||
{});
let
backSessionKeys
=
Object
.
keys
(
req
.
session2
.
sessionBack
||
{});
if
(
backSessionKeys
.
length
>
sessionKeys
.
length
)
{
let
differences
=
_
.
difference
(
backSessionKeys
,
sessionKeys
);
_
.
forEach
(
differences
,
d
=>
{
req
.
session
[
d
]
=
req
.
session2
.
sessionBack
[
d
];
});
}
req
.
session2
.
sessionBack
=
req
.
session
;
}
else
{
req
.
session
=
new
MemcachedSession
.
Session
(
req
);
req
.
session
.
cookie
=
new
MemcachedSession
.
Cookie
({
domain
:
'yohoblk.com'
,
httpOnly
:
false
});
req
.
session
=
_
.
assign
(
req
.
session
,
req
.
session2
.
sessionBack
);
}
if
(
typeof
req
.
session
.
reset
!==
'function'
)
{
req
.
session
.
reset
=
function
()
{
req
.
session
=
null
;
req
.
session2
.
reset
();
};
}
next
();
});
app
.
use
((
req
,
res
,
next
)
=>
{
req
.
user
=
{};
// 全局的用户数据
req
.
yoho
=
{};
// req和res绑定yoho对象,用于传递全局数据, 如req.yoho.channel等
if
(
!
req
.
session
||
!
req
.
session
.
uuid
)
{
req
.
session
=
{
uuid
:
uuid
.
v4
()
};
if
(
!
req
.
session
)
{
req
.
session
=
{};
}
next
();
});
...
...
package.json
View file @
e9ffba8
...
...
@@ -65,7 +65,9 @@
"winston-daily-rotate-file"
:
"^1.1.4"
,
"xml2js"
:
"^0.4.17"
,
"xss"
:
"^0.2.13"
,
"yoho-node-lib"
:
"0.2.17"
"connect-memcached"
:
"^0.2.0"
,
"yoho-express-session"
:
"^2.0.0"
,
"yoho-node-lib"
:
"0.2.17"
},
"devDependencies"
:
{
"autoprefixer"
:
"^6.3.6"
,
...
...
Please
register
or
login
to post a comment