koa2 session mysql_koa2-cookie-session

node.js的path.extname方法使用

由于该方法属于path模块,使用前需要引入path模块(var path= require(“path”) )

接收参数:

p path 路径

path.extname('index.html')

// returns

'.html'

path.extname('index.')

// returns

'.'

path.extname('index')

// returns

空'

node.js中的path.join方法使用说明

方法说明:

将多个参数组合成一个 path (详细请看例子)

path.join([path1], [path2], [...])

由于该方法属于path模块,使用前需要引入path模块(var path= require(“path”) )

例子:

path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')

// returns

'/foo/bar/baz/asdf'

path.join('foo', {}, 'bar')

// throws exception

TypeError:参数路径。加入必须是字符串

TypeError: Arguments to path.join must be strings

cookie

koa2使用cookie

app.use(async(ctx)=>{

if(ctx.url === '/index'){

//ctx.cookie.get() 读取上下文请求中的cookie

ctx.cookies.set( // 写入cookie

'cid', //cookie 的name

'hello world', // cookie 的value

{

domian:'localhost',//写入cookie所在的域名

path: '/index', //写入cookie所在的路径

maxAge: 20*60*1000, //cookie有效时间

httpOnly: false,//是否只用于http请求中获取

overwrite: false//是否允许重写

}

)

ctx.body = 'cookie is ok'

}else{

ctx.body = 'hello world'

}

})

session

数据库存储方案

将session存放在MySQL数据库中

需要用到中间件

koa-session-minimal 适用于koa2 的session中间件,提供存储介质的读写接口 。

koa-mysql-session 为koa-session-minimal中间件提供MySQL数据库的session数据读写操作。

将sessionId和对于的数据存到数据库

将数据库的存储的sessionId存到页面的cookie中

根据cookie的sessionId去获取对于的session信息

首先需要natvicat中建一个数据库

//配置存储session信息的mysql

let store = new MysqlSession({

user: 'root',//数据库用户名

password: 'abc123',//用户密码

database: 'koa_demo',//数据库名

host: '127.0.0.1',//数据库默认地址

});

//cookie session 文件配置

let cookie = {

maxAge:'',//cookie过期时间

path:'',//写入cookie所在的路径

domain:'',//写入cookie所在的域名

httpOnly: false,//是否只用于http请求

overwrite:'',//是否准许重写

secure: '',

sameSite: '',

signed: '',

}

//使用session 中间件,把上面配置的信息加载到session中间件中

//session 必须是一个方法 所以app.use(session({}))

app.use(session({

key: 'SESSION_ID',//Name

store: store,

cookie: cookie

}));

app.use(async(ctx)=>{

//访问/set 设置session

if (ctx.url === '/set' ) {

ctx.session = {

user_id:Math.random().toString(36).substr(2),

count: 0

}

ctx.body = ctx.session;

//否则 访问根目录 读取session数据

}else if(ctx.url === '/'){

//读取session 数据

ctx.session.count = ctx.session.count + 1

ctx.body = ctx.session

}

})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值