|
下面来说一下最近小sam在做项目遇到的一些小问题,首先是session了,即然是服务器渲染又需要用户登录功能,那么用session去记录用户登录态是必需要了~~在express中用的是express-session,那么在koa2中用的是哪个模块
session
1.koa2-cookie-session
1.Install
npm install koa2-cookie-session --save
2.Usage
import Koa from "koa"; import session
from "koa2-cookie-session";//注意这里的引入,一定要用improt from的姿势,不能用require的方法,不然会报错…… const app = new Koa();
//Options
app.use(session({
key: "SESSIONID", //default "koa:sid"
expires:3, //default 7
path:"/" //default "/"
}));
app.use(ctx => {
ctx.session.user = {
name: "myname"
};
ctx.body = ctx.session;
});
2.koa-session-redis
如果有用到redis想把session存在redis上的话用这个……
1.install
$ npm install koa-session-redis
2.Example
var session = require('koa-session-redis');
var koa = require('koa');
var app = koa();
app.keys
= ['some secret hurr'];
app.use(session({
store: {
host: process.env.SESSION_PORT_6379_TCP_ADDR
|| '127.0.0.1', port: process.env.SESSION_PORT_6379_TCP_PORT
|| 6379, ttl:
3600, },
},
));
app.use(function
*(){var n = this.session.views || 0;this.session.views = ++n;this.body = n + ' views';
})
app.listen(
3000);
console.log(
'listening on port 3000');
redis
redis需要在服务器安装,安装的过程这里就不说了……假如在服务器上安装好了redis,那么怎样在koa2上用,
1.ioredis
npm install ioredis --save
2.在koa2中用法
const router = require('koa-router')();const Redis=require('ioredis');const redis=new Redis({ host :
'127.0.0.1',//安装好的redis服务器地址 port : 80, //端口
prefix : 'sam:',//存诸前缀
ttl : 60 * 60 * 23,//过期时间
db: 0
});
router.get('/',async function(ctx,next){
redis.set("test","kwg kwg kwg");
const doc = await
redis.get("test",function(err,doc){
return doc;
});
ctx.body=doc;
});
module.exports = router;
大概就这样子~~~ |
|
|