koa框架学习记录(7)-阿里云开发者社区

开发者社区> 快乐的嘟嘟> 正文

koa框架学习记录(7)

简介: 一个前端学习koa的简单记录
+关注继续查看

Koa2中使用cookie
koa的上下文(ctx)直接提供了读取和写入cookie的方法
ctx.cookies.get(name,[optins]):读取上下文请求中的cookie。
ctx.cookies.set(name,value,[options]):在上下文中写入cookie。
写入Cookie操作:

const Koa  = require('koa');
const app = new Koa();

app.use(async(ctx)=>{
    if(ctx.url=== '/index'){
        ctx.cookies.set(
            'MyName','JSPang'
        );
        ctx.body = 'cookie is ok';
    }else{
        ctx.body = 'hello world'
    }
});

app.listen(3000,()=>{
    console.log('[demo] server is starting at port 3000');
})

打开F12可以在Application中找到Cookies选项。就可以找到我们写入的name和value了。

Cookie选项
比如我们要存储用户名,保留用户登录状态时,你可以选择7天内不用登录,也可以选择30天内不用登录。这就需要在写入是配置一些选项:
domain:写入cookie所在的域名
path:写入cookie所在的路径
maxAge:Cookie最大有效时长
expires:cookie失效时间
httpOnly:是否只用http请求中获得
overwirte:是否允许重写

const Koa  = require('koa');
const app = new Koa();
 
app.use(async(ctx)=>{
    if(ctx.url=== '/index'){
        ctx.cookies.set(
            'MyName','JSPang',{
                domain:'127.0.0.1', // 写cookie所在的域名
                path:'/index',       // 写cookie所在的路径
                maxAge:1000*60*60*24,   // cookie有效时长
                expires:new Date('2018-12-31'), // cookie失效时间
                httpOnly:false,  // 是否只用于http请求中获取
                overwrite:false  // 是否允许重写
            }
        );
        ctx.body = 'cookie is ok';
    }else{
        ctx.body = 'hello world'
    }
});
 
app.listen(3000,()=>{
    console.log('[demo] server is starting at port 3000');
})


读取Cookie:
const Koa  = require('koa');
const app = new Koa();
 
app.use(async(ctx)=>{
    if(ctx.url=== '/index'){
        ctx.cookies.set(
            'MyName','JSPang',{
                domain:'127.0.0.1', // 写cookie所在的域名
                path:'/index',       // 写cookie所在的路径
                maxAge:1000*60*60*24,   // cookie有效时长
                expires:new Date('2018-12-31'), // cookie失效时间
                httpOnly:false,  // 是否只用于http请求中获取
                overwrite:false  // 是否允许重写
            }
        );
        ctx.body = 'cookie is ok';
    }else{
        if( ctx.cookies.get('MyName')){
            ctx.body = ctx.cookies.get('MyName');
        }else{
            ctx.body = 'Cookie is none';
        }
      
    }
});
 
app.listen(3000,()=>{
    console.log('[demo] server is starting at port 3000');
})

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
云ESC使用体验
云服务器使用流程,用云服务器搭建网站
7 0
CSS实现背景颜色循环播放效果
颜色的循环播放效果应该如何去实现呢,细想下来,其实不需要用什么高端的技术,只需要使用css基本的animation动画效果就可以办得到,网上也有很多例子,接下来我们来看看这其中是如何实现吧。
4 0
ESC体验感受
云服务器使用感受
7 0
SpringMVC教程4[服务器端校验]
SpringMVC教程4[服务器端校验]
4 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(Trie树)
【愚公系列】2021年11月 C#版 数据结构与算法解析(Trie树)
4 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(数组)
【愚公系列】2021年11月 C#版 数据结构与算法解析(数组)
5 0
zookeeper实现动态感知服务器上下线
在实际的生产环境中我们一般都是集群环境部署的,同一个程序我们会部署在相同的几台服务器中,这时我们可以通过负载均衡服务器去调度,但是我们并不能很快速的获知哪台服务器挂掉了,这时我们就可以使用zookeeper来解决这个问题。
4 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(线段树)
【愚公系列】2021年11月 C#版 数据结构与算法解析(线段树)
6 0
【愚公系列】2021年11月 C#版 数据结构与算法解析(哈希)
【愚公系列】2021年11月 C#版 数据结构与算法解析(哈希)
5 0
@程序员,别再迷恋多线程工作了
@程序员,别再迷恋多线程工作了
4 0
+关注
32
文章
115
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载