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 exceptionTypeError:参数路径。加入必须是字符串TypeError: Arguments to path.join must be strings
cookie
koa2使用cookie app.use(async(ctx)=>{if(ctx.url === '/index'){//ctx.cookie.get() 读取上下文请求中的cookiectx.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',//Namestore: store,cookie: cookie
}));app.use(async(ctx)=>{//访问/set 设置sessionif (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 + 1ctx.body = ctx.session}
})