Open chdyiboke opened 4 years ago
Buffer() 和 new Buffer() 构造函数对于有安全顾虑的人而言是不推荐使用的。 请使用新的方法 Buffer.alloc(),Buffer.allocUnsafe() 或者是 Buffer.from() 构造函数。
SyntaxError: Unexpected token i in JSON at position 0
旧的cookie格式不对,导致报错
兼容判断是否为base64,否则,重新登录,重置cookie。
判断是否为base64格式的字符串 const exg = new RegExp('^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$'); exg.test();
判断是否为base64格式的字符串 const exg = new RegExp('^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$'); exg.test();
this.cookies.set('test', '我是koajs') ====》 http的header字符集支持US-ASCII子集的字符集,故设置中文是'utf8'时就会报上面错误。
解决方案??
把字符串转成base64即可 this.cookies.set('test', new Buffer('我是koajs').toString('base64')) 复制代码 base64转到字符串 new Buffer(str, 'base64').toString();//str是base64编码的字符串
https://juejin.im/post/6844903617451802638 https://nodejs.org/zh-cn/docs/guides/buffer-constructor-deprecation/