Heim > Fragen und Antworten > Hauptteil
const saveSession(ctx, se){
//do somethink...
ctx.session.se = se;
//do somethink...
}
router
.get('/login1', async (ctx, next) => {
saveSession(ctx, 'login1');
ctx.body = 'done';
next();
})
.get('/login2', async (ctx, next) => {
saveSession(ctx, 'login2');
ctx.body = 'done';
next();
})
如上代码,因为server的信息是保存在ctx
中的,所以如果要这样写个公共方法来保存session
的话就要传递ctx
变量,虽然这样做事可以实现效果
但是这样传递整个ctx感觉这样做好像不是很科学(?)
求各位解惑,谢谢!
伊谢尔伦2017-04-17 15:53:19
可以采用中间件的写法:
app.use((ctx, next) => {
if (ctx.saveSession) return next();
ctx.saveSession = (se) => {
//do somethink...
ctx.session.se = se;
//do somethink...
};
return next();
});
// 使用
ctx.saveSession('login1');