From e354823144ed699bde3f0548d3da15378c11f9db Mon Sep 17 00:00:00 2001 From: yutent Date: Wed, 30 Aug 2023 14:53:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20Response?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Response.md | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 Response.md diff --git a/Response.md b/Response.md new file mode 100644 index 0000000..273441f --- /dev/null +++ b/Response.md @@ -0,0 +1,80 @@ +## `Response`请求体对象 +> 这是一个对原生的http response请求体, 进一步封装的结果, 会自动对url的合法性进行校验, 并且以友好的方式返回错误信息。 同时封装一些常用的方法。 + + + +### 属性 + ++ `.origin` 原生的request和response对象,如果封装的这些方法不满足你的需求,可以直接对原生的request进行操作。 + ++ `.rendered` 是否已经向客户端发送数据了。 + + +### 方法 + ++ `.error(msg, code)` 以好友的方式向客户端输出错误错误信息。 + - msg`` 信息文本 + - code`` Http状态码, 默认500 + + ++ `.status(code)` 预设http状态码。 + + ++ `.redirect(url, force)` url重定向。 + - url`` 要重定向的地址, 需带完整的协议 + - force`` 是否永远重定向(301), 默认否(302). + + + ++ `.location(url)` url跳转(以html的形式)。 + > 需要注意的是, 这个跳转是html的方式, 所以请确保你的客户端是浏览器或webview环境。 + + ++ `.render(data, code)` 以html的形式向客户端输出内容。 + - data`` html文本 + - code`` Http状态码, 默认200 + + ++ `.sendfile(target|, name)` + - target`|` 要发送的数据, 可以是Buffer对象, 也可以字符串文本, 也可以是文件路径; 如果文件比较大, 推荐直接传入路径。 + - name`` 最终要保存的文件名。 + + > 以文件形式向客户端输出内容, 即下载功能。 + + + ++ `.send(code, msg, data, callback)` + - code`` Http状态码, 默认200 + - msg`` 额外信息文本 + - data`` 要发送的数据, 可以是任意符合json的数据类型。 + - callback`` jsonp协议的回调函数名。[可选] + + > 以json格式向客户端输出内容, 可支持jsonp协议; 默认遵循resful-api规范。 + + + ++ `.end(data|)` 向客户端输出内容, 不指定形式。 + + ++ `.get(key)` 读取预写入客户端的头信息。 + > 注意,该方法不读取客户端发送上来的头信息, 是读取即将发送到客户端的头信息。 + + ++ `.set(key, val)` 预写入客户端的头信息。 + > key大小写不敏感。同一个key, 重复写入的话, 会覆盖之前的内容。 + + ++ `.append(key, val)` 预写入客户端的头信息。 + > 功能跟上面的.set()一样, 但是append()方法不会覆盖之前写入的内容, 而是在后面追加。 + + ++ `.cookie(key, val, opt)` 预写入cookie。 + > key大小写不敏感, 同一个key会覆盖之前的。 + > **注意:** 控制器基类中已经基于本方法封装了一个读取+写入的cookie方法, 建议直接使用。 + + + ---- + +上一节: [⟪Request⟫](https://github.com/bytedo/gmf.core/wiki/Request) + +下一节: [⟪会话Session⟫](https://github.com/bytedo/gmf.core/wiki/Session) \ No newline at end of file