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}
})