koa2中的session及redis


下面來說一下最近小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;

 

大概就這樣子~~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM