微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

11 ~ express ~ 解决 cookie 中文报错的问题

使用cookies包需要注意:
1,cookie中是不能有中文的,一旦有中文,就会报错
2,cookie是通过 中间件的形式直接挂载到 req对象上的,那么cookies有的方法,req.cookies就有,一样的
cookie是一个对象,需要JSON.stringify; 

3,编码使用 encodeURI("需要编码的内容")
4,解码使用decodeURI("需要解码的内容")

 

一,编码   /router/api.js

try {   req.cookies.set("userInfo", encodeURI(JSON.stringify({   _id: userInfo._id,   username: userInfo.username })))
} catch (e) {   console.log(e) }

 

二,解码   app.js

app.use((req, res, next) => {   var cookies = new Cookies(req,res)   req.userInfo = {}   if (req.cookies.get("userInfo")) {     try {       var userInfo = req.cookies.get("userInfo")       req.userInfo = JSON.parse(decodeURI(userInfo))       console.log('app.js, 解析userinfo-成功')       console.log(req.userInfo)     } catch (e) {       console.log("app.js, 解析cookie信息失败")     } }
    next() }  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐