From d1d6b07fe15f501c1dcb8b20255184ef4f47d3d4 Mon Sep 17 00:00:00 2001 From: mmsen Date: Tue, 12 Jul 2022 23:25:46 +0000 Subject: [PATCH] update docs/uniCloud/uni-cloud-router.md. --- docs/uniCloud/uni-cloud-router.md | 46 +++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/docs/uniCloud/uni-cloud-router.md b/docs/uniCloud/uni-cloud-router.md index b4b14d5c8..406c4adc4 100644 --- a/docs/uniCloud/uni-cloud-router.md +++ b/docs/uniCloud/uni-cloud-router.md @@ -15,6 +15,7 @@ - [获取请求参数](#获取请求参数) - [调用 Service](#调用-service) - [定制 URL 化返回的状态码](#定制-url-化返回的状态码) + - [Cookie使用](#Cookie使用) - [服务(Service)](#服务service) - [使用场景](#使用场景) - [如何编写 Service](#如何编写-service) @@ -243,6 +244,51 @@ class PostController extends Controller { - 响应头内各个字段请使用全小写,例:'Content-Type' ×,'content-type' √ + + +## Cookie的使用 + +在某些场景下,cookie依然占有重要地位,例如在云函数URL化的情况下,获取客户端的状态 + +在云函数中使用cookie需要依赖cookie库[npm页面地址](http://https://www.npmjs.com/package/cookie),可以通过`npm inistall cookie` 安装 + +```js +'use strict'; + +//引入cookie +const cookie = require('cookie') + +module.exports = class Instance extends Controller +{ + async foo(ctx) + { + //event为客户端上传的参数 + //如果客户端有cookie,则cookie回随请求携带至服务端,放置在ctx.event.headers.cookie中,假设 cookie为“[jwt=自加密base64; app=uniCloud]” + console.log('event : ', ctx.event) + + //解析cookie + const cookieData = cookie.parse( ctx.event.headers.cookie||'' ) + console.log(cookieData)//输出结果为:{jwt:"自加密base64", app:"uniCloud" } + + //设置cookie到客户端 + + const cookieOptions = { + //具体参数请查阅 https://www.npmjs.com/package/cookie + maxAge: 60 * 60 * 24 * 7,//一周 + path:"/" + } + const setCookieData = cookie.serialize('app', 'appName', cookieOptions) + ctx.headers['set-cookie'] = setCookieData + + + //...其他操作 + } + +}; + +``` + + ### 服务(Service) 业务逻辑封装的一个抽象层,有以下几个好处: -- Gitee