diff --git a/docs/uniCloud/uni-cloud-router.md b/docs/uniCloud/uni-cloud-router.md
index 406c4adc4e70afa957189f18e83a810f7c41523a..e3ee079449883dec1efdf1c598a62e6e390f1c0c 100644
--- a/docs/uniCloud/uni-cloud-router.md
+++ b/docs/uniCloud/uni-cloud-router.md
@@ -14,6 +14,7 @@
- [如何编写 Controller](#如何编写-controller)
- [获取请求参数](#获取请求参数)
- [调用 Service](#调用-service)
+ - [集成化返回](#集成化返回)
- [定制 URL 化返回的状态码](#定制-url-化返回的状态码)
- [Cookie使用](#Cookie使用)
- [服务(Service)](#服务service)
@@ -217,6 +218,137 @@ class PostController extends Controller {
Service 的具体写法,请查看 [Service](#服务service) 章节。
+
+#### 集成化返回
+在`uni-cloud-router`的`Controller内集成化返回与云函数集成化返回稍有不同
+
+> 返回字符串
+```js
+
+class PostController extends Controller
+{
+ async load(ctx) {
+ //必须设置 如果直接return 'abc', 客户端输为 '"abc"'
+ ctx.headers = {'content-type':'text/html'}
+ ctx.body = 'String'
+ //或 return 'String'
+ }
+}
+```
+
+
+> 返回javascript
+```js
+
+class PostController extends Controller
+{
+ async load(ctx) {
+ ctx.headers = {'content-type':'application/javascript'}
+ ctx.body = 'console.log("abc")'
+ }
+}
+```
+
+
+
+> 返回html
+```js
+
+class PostController extends Controller
+{
+ async load(ctx) {
+ ctx.headers = {'content-type':'text/html'}
+ ctx.body = `
+
+
+
+ Hellow
+
+
+`
+ }
+}
+```
+
+> 返回XML
+```js
+
+class PostController extends Controller
+{
+ async load(ctx) {
+ ctx.headers = {'content-type':'text/xml'}
+ ctx.body = `
+
+
+ `
+}
+}
+```
+
+> 从远程加载一张图片返回二进制流
+```js
+
+/**
+* @params {Buffer} fileBuffer 加载的图片数据
+* @return {String} 不带.的图片扩展名
+*/
+getImageExtensionName(fileBuffer) {
+// 将上文提到的 文件标识头 按 字节 整理到数组中
+ const imageBufferHeaders = [
+ {bufBegin: [0xff, 0xd8],bufEnd: [0xff, 0xd9], ext: 'jpg' },
+ {bufBegin: [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], ext: 'png'},
+ {bufBegin: [0x47, 0x49, 0x46, 0x38, 0x39, 0x61],ext: 'gif'},
+ {bufBegin: [0x47, 0x49, 0x46, 0x38, 0x37, 0x61],ext: 'gif'},
+ {bufBegin: [0x42, 0x4d],ext: 'bmp'},
+ {bufBegin: [0x49, 0x49],ext: 'tif'},
+ {bufBegin: [0x4d, 0x4d],ext: 'tif'},
+ {bufBegin: [0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x20, 0x20],ext: 'ico'}
+ ]
+ for (const imageBufferHeader of imageBufferHeaders) {
+ let isEqual
+ // 判断标识头前缀
+ if (imageBufferHeader.bufBegin) {
+ const buf = Buffer.from(imageBufferHeader.bufBegin)
+ //使用 buffer.slice 方法 对 buffer 以字节为单位切割
+ isEqual = buf.equals(fileBuffer.slice(0, imageBufferHeader.bufBegin.length))
+ }
+ // 判断标识头后缀
+ if (isEqual && imageBufferHeader.bufEnd) {
+ const buf = Buffer.from(imageBufferHeader.bufEnd)
+ isEqual = buf.equals(fileBuffer.slice(-imageBufferHeader.bufEnd.length))
+ }
+ if (isEqual) {
+ return imageBufferHeader.ext
+ }
+ }
+ // 未能识别到该文件类型
+ return ''
+}
+
+class MediaController extends Controller
+{
+ async load(ctx) {
+ const {data} = await this.curl('图片地址后获取图片的url')
+
+ ctx.isBase64Encoded = true
+ if( data && data.constructor == Buffer )
+ {
+ //假设你知道加载的图片类型可以直接设置content-type
+ //如果图片类型未知则需要通过getImageExtensionName分析data的图片类型,例如微信通过media_id获取素材资源等
+ const ext = getImageExtensionName(data)
+ ctx.headers = {'content-type': `image/${ext}`}
+ ctx.body = Buffer.from(data).toString('base64')
+ }
+ else
+ {
+ ctx.headers = {'content-type': 'image/png'}
+ ctx.body = '一个默认的png类型的Base64图片'
+ }
+ }
+}
+```
+
+
#### 定制 URL 化返回的状态码
```js