Update Response

master
yutent 2023-11-02 18:06:29 +08:00
parent 244d77f25f
commit ad3c99361b
1 changed files with 60 additions and 23 deletions

@ -1,80 +1,117 @@
## `Response`请求体对象
> 这是一个对原生的http response请求体, 进一步封装的结果, 会自动对url的合法性进行校验, 并且以友好的方式返回错误信息。 同时封装一些常用的方法。
# `Response`请求体对象
> 这是一个对原生的**http Response**进一步封装的对象, 封装一些常用的方法。
### 属性
## 属性
+ `.origin<Object>` 原生的request和response对象,如果封装的这些方法不满足你的需求,可以直接对原生的request进行操作
+ `.ended` 【只读】是否已经向客户端发送数据了, 为true时, 即已结束响应, 无法再追加任何数据
+ `.rendered<Boolean>` 是否已经向客户端发送数据了。
+ `.charset` 【只写】, 设置响应数据的编码(当且仅当响应的内容是文本类型时生效), 默认为`utf-8`。
+ `.length` 【只写】, 设置响应数据的字节长度, 一般很少需要手动设置。
+ `.body` 【只写】, 设置响应的数据, 可以是Buffer对象, 也可以是字符串, 也可以是 null。
+ `.type` 设置响应数据的类型。只需要写后缀名即可, 如 `res.type = 'html'`, `res.type = 'png'`
+ `.status` 设置响应的http状态码。默认 200.
### 方法
## 方法
+ `.error(msg<String>, code<Number>)` 以好友的方式向客户端输出错误错误信息。
- msg`<String>` 信息文本
- code`<Number>` Http状态码, 默认500
+ `.status(code<Number>)` 预设http状态码。
---
+ `.redirect(url<String>, force<Boolean>)` url重定向。
- url`<String>` 要重定向的地址, 需带完整的协议
- force`<Boolean>` 是否永远重定向(301), 默认否(302).
---
+ `.location(url<String>)` url跳转(以html的形式)。
> 需要注意的是, 这个跳转是html的方式, 所以请确保你的客户端是浏览器或webview环境。
---
+ `.render(data<String>, code<Number>)` 以html的形式向客户端输出内容。
- data`<String>` html文本
- code`<Number>` Http状态码, 默认200
- code`<Number>` 【可选】Http状态码, 默认200
---
+ `.sendfile(target<String>|<Buffer>, name<String>)`
- target`<String>|<Buffer>` 要发送的数据, 可以是Buffer对象, 也可以字符串文本, 也可以是文件路径; 如果文件比较大, 推荐直接传入路径。
- name`<String>` 最终要保存的文件名。
- name`<String>` 【可选】最终要保存的文件名。
> 以文件形式向客户端输出内容, 即下载功能。
> 以附件形式向客户端输出内容, 即下载功能, 支持分片下载。
---
+ `.send(code<Number>, msg<String>, data<Any>, callback<String>)`
+ `.send(code<Number>, msg<String>, data<Any>)`
- code`<Number>` Http状态码, 默认200
- msg`<String>` 额外信息文本
- data`<Any>` 要发送的数据, 可以是任意符合json的数据类型。
- callback`<String>` jsonp协议的回调函数名。[可选]
> 以json格式向客户端输出内容, 可支持jsonp协议; 默认遵循resful-api规范。
> 以json格式向客户端输出内容, 默认遵循resful-api规范。
>> 当code的值不在 200~599这个范围内时, http状态不会跟随code的值(会使用默认的200)。
---
+ `.end(data<String>|<Buffer>)` 向客户端输出内容, 不指定形式。
+ `.get(key<String>)` 读取预写入客户端的头信息。
> 注意,该方法不读取客户端发送上来的头信息, 是读取即将发送到客户端的头信息。
---
+ `.set(key<String>, val<String>)` 预写入客户端的头信息。
> key大小写不敏感。同一个key, 重复写入的话, 会覆盖之前的内容。
---
+ `.append(key<String>, val<String>)` 预写入客户端的头信息。
> 功能跟上面的.set()一样, 但是append()方法不会覆盖之前写入的内容, 而是在后面追加。
---
+ `.delete(key<String>)` 删除写入的客户端的头信息。
---
+ `.cookie(key<String>, val<String>, opt<Object>)` 预写入cookie。
> key大小写不敏感, 同一个key会覆盖之前的。
> **注意:** 控制器基类中已经基于本方法封装了一个读取+写入的cookie方法, 建议直接使用。
----
上一节: [⟪Request⟫](https://github.com/bytedo/gmf.core/wiki/Request)
下一节: [⟪会话Session⟫](https://github.com/bytedo/gmf.core/wiki/Session)