Cookie 就是餅乾 … 好冷喔
如果不知道網頁 cookie 是做什麼用的,那這篇不適合你
寫入
寫入的只需要操作 ctx.cookies.set
就可以
const Koa = require('koa')
const app = new Koa()
app.use(async (ctx) => {
if (ctx.url === '/index') {
ctx.cookies.set(
'MyName', 'Lemon', {
domain:'127.0.0.1',
path:'/index',
maxAge:1000*60*60*24,
expires:new Date('2018-12-31'),
httpOnly:false,
overwrite:false
});
ctx.body = 'cookie is ok'
}else{
if (ctx.cookies.get('MyName')) {
ctx.body = ctx.cookies.get('MyName')
} else {
ctx.body = 'Cookie is not here'
}
}
});
app.listen(3000, () => {
console.log('[demo] server is starting at port 3000')
})
而除了第一組個 key-value pair 是必填的內容外
後方大括號內容為選填,甚至可以只填入 key-value pair
不過還是說明一下那些東西是什麼,因為有時候可能會用到
- domain:有效域名
- path:有效路徑
- maxAge:(Int) 有效時間長度
- expires:(Date) 失效時間
- httpOnly:(boolean) 是否限制 cookie 只能經由 HTTP(S) 協定來存取
- overwrite:(boolean) 是否允許覆寫
讀取
跟寫入使用 set ,那讀取一點也不意外的 ctx.cookies.get('{key_name}')
把想取得的 cookie 鍵值帶入 {key_name} 就可以取得了!
結論
在 Koa2 中的 cookie 操作就是
- ctx.cookies.set(name, value, [options]):在上下文中寫入cookie
- ctx.cookies.get(name, [options]):讀取上下文請求中的cookie
留言
張貼留言