错误重现:(使用ctx.cookies.set时报错)

这是因为koa的http的header字符集支持US-ASCII子集的字符集,故设置中文是'utf8'时就会报上面错误

解决方法有两种:

1. 使用new Buffer().toString('base64')转换

2. 使用encodeURIComponent()转换

 this.cookies.set('test', new Buffer('你好').toString('base64'))
 new Buffer(ctx.cookies.get('test'), 'base64').toString();

或者

 ctx.cookies.set('uname', encodeURIComponent('你好'))

 decodeURIComponent(ctx.cookies.get('uname'))

如果value值是英文字符,无需转换

Koa中使用cookies的更多相关文章

  1. Cookie、Session、JWT在koa中的应用及实现原理

    目录 Cookie 重要属性 实现原理 cookie签名实现原理 注意事项 Session 实现原理 JWT 使用方式 组成 实际应用 实现原理 前端存储方式 cookie session local ...

  2. Koa与Node.js开发实战(3)——Nunjucks模板在Koa中的应用(视频演示)

    技术架构: ​ 在Koa中应用Nunjucks,需要先把Nunjucks集成为符合Koa规格的中间件(Middleware),从本质上来讲,集成后的中间件的作用是给上下文对象绑定一个render(vi ...

  3. Koa 中 ejs 模板的使用

    ejs的基本使用 安装 koa-views 和 ejs npm install --save koa-views/cnpm install --save koa-views npm install e ...

  4. 从前端中的IOC理念理解koa中的app.use()

    忙里偷闲,打开平时关注的前端相关的网站,浏览最近最新的前端动态.佼佼者,平凡的我做不到,但还是要争取不做落后者. 前端中的IoC理念,看到这个标题就被吸引了.IoC 理念,不认识呢,点击去一看,果然没 ...

  5. koa中返回404并且刷新后才正常的解决方案

    概述 这几天学习koa2,有一些心得,记录下来,供以后开发时参考,相信对其他人也有用. 起因 这几天学习koa2,写的代码执行时有一个奇怪的bug:明明能够返回数据,却有时正常返回数据,有时偏偏给你返 ...

  6. Koa 中实现 chunked 数据传输

    有关于 Transfer-Encoding:chunked 类型的响应,参见之前的文章HTTP 响应的分块传输.这里看 Koa 中如何实现. Koa 中请求返回的处理 虽然官方文档有描述说明不建议直接 ...

  7. koa 基础(十六)koa 中 session 的使用

    1.app.js /** * koa 中 session 的使用 * 1.npm install koa-session --save * 2.const session = require('koa ...

  8. koa 基础(十一)koa 中 koa-bodyparser 中间件获取表单提交的数据

    1.app.js /** * koa 中 koa-bodyparser 中间件获取表单提交的数据 * 1.npm install --save koa-bodyparser * 2.引入 const ...

  9. koa 基础(十)原生node.js 在 koa 中获取表单提交的数据

    1.app.js // 引入模块 const Koa = require('koa'); const router = require('koa-router')(); /*引入是实例化路由 推荐*/ ...

随机推荐

  1. hdu6363 bookshelf 容斥+数列+数论gcd定理(也可以Möbius)

    #define _CRT_SECURE_NO_WARNINGS #include<cmath> #include<iostream> #include<stdio.h&g ...

  2. centos 安装oracle 报Checking swap space: 0 MB available, 150 MB required. Failed <<<<

    1 系统环境 centos 6.5 oracle 11g 内存 16G 硬盘 ssd 250G 2 运行安装命令: [oracle@localhost database]$ ./runInstalle ...

  3. Chap4:区块链的应用技术[《区块链中文词典》维京&甲子]

  4. 图->连通性->最小生成树(普里姆算法)

    文字描述 用连通网来表示n个城市及n个城市间可能设置的通信线路,其中网的顶点表示城市,边表示两城市之间的线路,赋于边的权值表示相应的代价.对于n个定点的连通网可以建立许多不同的生成树,每一棵生成树都可 ...

  5. spring学习(01)之IOC

    spring学习(01)之IOC IOC:控制反转——Spring通过一种称作控制反转(IOC)的技术促进了低耦合.当应用了IOC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创 ...

  6. LVS:三种负载均衡方式比较

    [转自http://soft.chinabyte.com/25/13169025.shtml] 1.什么是LVS? 首先简单介绍一下LVS (Linux Virtual Server)到底是什么东西, ...

  7. Github上Laravel开源排行榜Star数61-90名

    Github上Laravel开源排行榜Star数61-90名,罗列所有 Laravel 开源扩展包,含 Github Star 数量,下载数量和项目简介.默认排序是按Star数量从多到少来排 61.c ...

  8. Scala常用变量生命周期

    val words = *** //在words被定义时取值 lazy val words = *** //在words被首次使用时取值 def words = *** //在每一次words被使用时 ...

  9. [py]super调用父类的方法---面向对象

    super()用于调用父类方法 http://www.runoob.com/python/python-func-super.html super() 函数是用于调用父类(超类)的一个方法. clas ...

  10. Django-认证系统

    一.Django实现cookie与session 一.Django实现的cookie 1.获取cookie request.COOKIES['key'] request.get_signed_cook ...