koa 2のセッションおよびredis
7570 ワード
以下に、最近のsamさんがプロジェクトで出会ったいくつかの小さな問題についてお話しします.まず、sessionです.つまり、サーバレンダリングにユーザーログイン機能が必要です.では、sessionでユーザーログイン状態を記録する必要があります.expressではexpress-sessionを使用しています.koa 2ではどのモジュールを使用していますか.
session
1.koa2-cookie-session
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.Examplevar 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をインストールしたら、koa 2でどのように使いますか.ioredisnpm install ioredis --save
2.koa 2での使い方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;
だいたいこんな感じ~~~
転載先:https://www.cnblogs.com/samsimi/p/6547452.html